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

目的:现在有116个文件夹,及文件夹里的照片JPG需要重新命名。文件夹已经用数字序号进行命名(如截图),目录为:F:\downloads\1。有个表格也在该目录下,表格文... 目的:现在有116个文件夹,及文件夹里的照片JPG需要重新命名。文件夹已经用数字序号进行命名(如截图),目录为:F:\downloads\1。
有个表格也在该目录下,表格文件名为data.xlsx。
data.xlsx中第一列是序号,第二列是城市,第三列是小区名。
现在需要把data.xlsx中的序号+城市名合并在一起后,提取出来,修改到对应序号的文件夹名称中;把data.xlsx中序号+城市+小区名合并在一起后,取出来,修改到对应序号文件夹里若干JPG的文件名中(如截图)。
每个文件夹的JPG数量不等。求python代码,本人新手,最好每个步骤后能用#备注下是用来干什么的,感谢!
展开
 我来答
阳光上的桥
2022-04-12 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65815
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

既然数据在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) & "\"
这样程序应该就正常了,能扫描文件并修改名字。
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式