【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。
0.摘要
python处理文件,可以进行新建、删除、剪切、复制以及重命名等多种操作。本着简化再简化的原则,我们本文只介绍如何使用python批量重命名文件。
本文的结构:
- 批量重命名简介
- python操作文件模块os
- 准备需要重命名的文件
- 编写python重命名文件代码并运行
- 扩展,通过读取文件内容来重命名文件
本文大约需要15分钟,建议在电脑上打开,边阅读边操作。
1.文件名批量重命名
在工作中,有时候我们需要将许多文件的文件名批量重命名。有很多软件可以实现这一功能,但我们也可以使用python编程。
2.python操作文件模块os
在使用python对文件名进行重命名时,我们需要掌握python的一个操作文件的模块,os。我们使用os.remane() 方法去重命名对应文件夹里的文件。
例子:假如文件夹下有一个a.txt的文件,我们将它重命名为b.txt
import os
os.rename("a.txt", "b.txt")
3. 准备需要重命名的文件
我们在文件夹内,准备多个文件:
我们打算将其重命名为flython-xx.txt的格式
这里需要做几件事, 首先是要获取文件夹内的所有文件名 其次是需要过滤非txt后缀的文件,因为我们只改txt后缀的文件 最后是对文件进行计数,并重命名
4. 编写python重命名文件代码并运行
我们开始编程:
import os
path="./"
count=0
for directory, dirnames, filenames in os.walk(path):
for filename in filenames:
if not filename.endswith(".txt"):
continue
count+=1
origin_path=os.path.join(path,filename)
newname="flypthon-%d"%count
rename_path=os.path.join(path,newname)
os.rename(origin_path,rename_path)
print(filename,"重命名为",rename_path)
5. 扩展
前面我们只实现了一个最基础的批量重命名工作,在这个基础上,我们可以实现更复杂的文件名修改工作。比如HR收集了很多简历,本来都是用应聘者名字来命名的,我们要将其重命名为 20201105-XXX-python工程师.docx的格式。
代码如下:
import os
path="./"
count=0
for directory, dirnames, filenames in os.walk(path):
for filename in filenames:
if not filename.endswith(".docx") or filename.endswith(".doc") or filename.endswith(".pdf"):
continue
count+=1
origin_path=os.path.join(path,filename)
filename=filename.split(".")
prefix=filename[0]
postfix=filename[1]
newname="20201105-"+prefix+"-python工程师."+postfix
rename_path=os.path.join(path,newname)
os.rename(origin_path,rename_path)
print(filename,"重命名为",rename_path)
当然,你也可以通过读取Excel表格的内容,来重命名文件,读取Excel表格,可以参考我们之前的文章。
【极简Python 自动化办公】Python读取Excel表格
【极简Python 自动化办公】Python写入Excel表格