求帮用python写从excel提取名字,改文件夹名称的代码

目的:现在有116个文件夹,及文件夹里的照片JPG需要重新命名。文件夹已经用数字序号进行命名(如截图),目录为:F:\downloads\1。
有个表格也在该目录下,表格文件名为data.xlsx。
data.xlsx中第一列是序号,第二列是城市,第三列是小区名。
现在需要把data.xlsx中的序号+城市名合并在一起后,提取出来,修改到对应序号的文件夹名称中;把data.xlsx中序号+城市+小区名合并在一起后,取出来,修改到对应序号文件夹里若干JPG的文件名中(如截图)。
每个文件夹的JPG数量不等。求python代码,本人新手,最好每个步骤后能用#备注下是用来干什么的,感谢!

既然数据在EXCEL里面,用VBA来写是顺理成章的,VBA的好处是代码在EXCEL文件里面,比较友好的开发和调试环境,可以单步一行一行的执行代码,中途可以查看变量的值,便于更正程序,我初步写了一个VBA代码,方法是把文件另存为XLAM格式(带脚本的文件),按ALT+F11进入VBA环境,按CTRL+R打开工程管理器,插入模块,粘贴代码,如下图:


代码文件如下(有可能浏览器会偷吃特殊字符,一定结合上图):

Option Explicit

Sub 宏1()
Dim arr, i, j, p, f
arr = ActiveSheet.UsedRange
For i = 2 To UBound(arr)
'文件改名
p = "f:\downloads\1\" & arr(i, 1)
f = Dir(p & "*.jpg")
j = 1
While f <> ""
Name p & f As p & arr(i, 2) & arr(i, 3) & j & ".jpg"
f = Dir
j = j + 1
Wend
'文件夹改名
Name p As p & arr(i, 2)
Next i
End Sub


追问

不会用VBA,运行后只有文件夹的名字改了:

追答

第一个Name .. As ...是修改文件名的,F8一行一行的执行了解一下情况,我复查代码,发现下面的语句有问题:
p = "f:\downloads\1\" & arr(i, 1)
应该在末尾添加\,该语句应该修改为:
p = "f:\downloads\1\" & arr(i, 1) & "\"
这样程序应该就正常了,能扫描文件并修改名字。

追问

试了下,报错了,且这回文件夹的名字也没有改。

追答

报错的时候调试一下,可以按CTRL+G输出改名前后的内容,然后分析原因,看看是原始文件不存在呢,还是目的文件已存在,总是这些原因之一,立即窗口调试表达式的值可以使用?命令,例如:
? p & f

追问

太难了_(:з」∠)_还是无法改jpg文件名。能改文件夹就改文件夹吧,不挣扎改文件名了。感谢回答,先采纳了。

温馨提示:答案为网友推荐,仅供参考
相似回答