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)  # 输出提示
posted @ 2023-11-30 20:30  Danlis  阅读(2)  评论(0编辑  收藏  举报