Python批量修改文件名
使用OS模块,使用os.listdir获取当前路径下的文件名列表(不获取子目录),os.rename重命名。
import os, sys # 导入模块。
from itertools import groupby # 用于分组库。
# from os.path import splitext # splitext(path)用于拆分后缀的,获得二维元组(名,后缀)。
if __name__ == '__main__':
path = r'C:\C1Files' # 文件路径,用的绝对路径。
old_names = os.listdir(path) # 取路径下的文件名,生成列表。
# 这里的文件名要求前三位为数字int型的,否则会异常。
sorted(old_names, key=lambda x: int(x[:3]))
count = 0
for old_name in old_names: # 遍历列表下的文件名
if old_name != sys.argv[0]: # sys.argv[0]是代码本身文件路径,这是预防处理。
# lambda表达式分割,如果是数字则分割。
# names = [''.join(list(g)) for k, g in groupby(old_name, key=lambda x:x.isdigit())]
for i, v in enumerate(old_name):
if not v.isdigit():
break
digit = old_name[:i].rjust(3, '0')
str1 = old_name[i:]
# new_name = digit + str1
count += 1
new_name = str(count).rjust(3, '0') + str1
# 重命名函数(原文件名,新文件名),使用的时候先注释过一下,防止弄错了。确认后再解除注释。
# os.rename(os.path.join(path, old_name), os.path.join(path, new_name))
print(old_name, "-> ", new_name) # 输出提示
fighting