今天,我们来整理文件夹中的文件,给某个文件夹下的所有文件重新命名。要求是给所有文件按照修改时间,按顺序在文件名前面加上编号。比如将文件 资料.xlsx
重命名为 1. 资料.xlsx
import os
def Get_modify_time(file):
return os.path.getmtime(file) #获取文件修改时间
path='文件' #文件所在文件夹
files = [path+"\\"+i for i in os.listdir(path)] #获取文件夹下的文件名,并拼接完整路径
files.sort(key=Get_modify_time) #以文件修改时间为依据升序排序
files
['文件\\资料.xlsx',
'文件\\文档.txt',
'文件\\说明.docx',
'文件\\演示文稿 - v1.pptx',
'文件\\演示文稿.pptx']
以上,我们先导入 os
模块,用于处理文件及目录等。然后定义了一个函数,用于获取文件的修改时间,以便后续通过文件修改时间来进行排序编号。然后获取文件夹下的文件名的完整路径,存入列表 files
,并调用 Get_modify_time
函数将列表中的元素按文件修改时间排序。不然系统会自动按字母顺序(汉字按首字的拼音字母顺序)排序。可以看到 files
已储存 文件
文件夹下的所有5个文件。
seq = 1 #计数器,从1开始
for file in files:
os.rename(file, os.path.join(path, str(seq) + ". "+ file.split("\\")[-1])) #重命名文件
seq += 1
随后就可以批量重命名文件了。由于我们的目的是给文件加编号,从1开始,所以要先定义一个计数器 seq
,初始值设为1,每重命名一个文件就增加1。然后遍历所有待命名的文件,使用 os.rename()
按要求进行重命名操作。os.rename()
有两个参数,分别代表当前的文件名和重命名后的文件名。比如 os.rename("A","B")
就表示将名字为A的文件命名为B。os.path.join()
用于拼接文件路径,比如如下操作,它自动将'文件'和"abc.docx"按照路径的方式拼接起来了。
os.path.join('文件',"abc.docx")
'文件\\abc.docx'
程序运行完成后,结果如下。