Python批量修改文件名

发布时间 2023-11-30 20:31:03作者: Danlis

python
import os, sys # 导入模块
from itertools import groupby
from os.path import splitext

if name == 'main':
path = r'C:\C1Files' # 运行程序前,记得修改主文件夹路径!
old_names = os.listdir(path) # 取路径下的文件名,生成列表,这个获取的时候可能会出现未获取全的情况
# 使用排序的前提是前三位是数字可比较的,所以处理的时候,先把名字改为不足3位补0
sorted(old_names, key=lambda x: int(x[:3]))
count = 0
for old_name in old_names: # 遍历列表下的文件名
if old_name != sys.argv[0]: # 代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
# if old_name.endswith('.txt'): #当文件名以.txt后缀结尾时
# 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重新排
        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)  # 输出提示