给文件批量重命名可能是工作中会遇到的一个常见问题,利用Python实现批量重命名大致上可以按照以下的思路:
- 决定重命名的方式,即旧文件名字和新文件名字之间的对应关系
- 完成一次重命名
- 利用循环批量执行重命名
在上述步骤了,决定重命名的方式可能是最为繁琐的一步,举个例子,如果需要将一个均是用姓名命名的照片文件修改为身份证号码命名,则需要准备好姓名和身份证的对应表。并将其转换为字典的形式,利用旧文件名作为字典的键,新名字作为字典的值,这样重命名更为方便。例如:
name = {'张三':'123456789012345678',
'李四':'123456789012345678'
}
构建字典之后,可以利用之前提到的获取文件目录的方式,os.listdir()【Python读取文件目录之os模块的使用】,读取文件名字,将文件名传入字典中就可以获取到新名字,大致的代码如下:
import os
ld = os.listdir()
for f in ld:
f_fistname = os.path.splitext(f)
os.rename(f,name[f_fistname[0]] + f_fistname[1])
上述代码就完成了完成批量的重命名,具体如何更快的制作这样的字典,后续我将介绍python与excel如何进行互动。
如果我们只是为了将文件名变的更为规整,不思考对应的名字,那么重命名就简单许多。为了举例,我们创建一些空文件。

编写代码:
import os
ld = os.listdir() #获取当前目录下的文件
n = 1
for f in ld:
new_name = str(n) + '-图片.bmp'
f_ = os.path.splitext(f)
if f_[1] == '.bmp': #筛选,仅更改'.bmp'结尾的文件
n = n + 1
os.rename(f,new_name)
执行上述代码后,文件名被修改:

值得注意的是os模块中还有一个os.renames(),相较于刚使用的os.rename()是不同的。os.renames()还可以修改文件的路径名称,而os.rename()仅用于修改文件名。

© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...





