Python批量修改文件名称

所需工具:python环境、PyCharm。均有官网途径下载。
摘要:在我们日常学习时,从老师手里拿到的常常是只有标题的课件,我希望将这些课件有条理的整理并标记序号,这样无论是复习还是日常查看都会方便很多,同理,这种情况可以类比到办公文件上。本文的python程序正是为了解决这个问题,自动为指定文件夹下的文件添加序号(样式为:01_,02_等)。

1.添加序号样式01_,02_…(可重复运行)
非常推荐,这段代码可以快速帮你的文件添加序号,并判断是否已经存在序号,如果本身已经被添加过序号则会自动跳过处理。缺点也很明显,就是它依赖windows自身的文件排序,可能出现某个文件的顺序不是你想要的,对于多个乱序文件,你要手动一个个的放入文件夹并多次运行程序,但无论如何,它都帮你省下了不少功夫。٩(ˊᗜˋ*)و

import os

# 指定文件夹路径
folder_path = "这里填你的文件夹路径...D:\\folder"

# 列出文件夹中的所有文件
file_list = os.listdir(folder_path)

# 遍历文件列表并输出每个文件的名称
for file_name in file_list:
    print(file_name)

# 遍历文件列表并为没有序号的文件添加序号
for i, file_name in enumerate(file_list):
    # 判断文件名是否已经包含序号
    if file_name[:2].isdigit():
        print('文件{}已经包含序号,跳过处理'.format(file_name))
    else:
        # 生成新的文件名
        new_file_name = '{:02d}_{}'.format(i+1, file_name)
        # 重命名文件
        os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name))
        print('文件{}已经重命名为{}'.format(file_name, new_file_name))

# 输出修改之后的每个文件名称
document_list = os.listdir("这里填你的文件夹路径...D:\\folder")

for document_name in document_list:
    print(document_name)
    
#统计文件夹下文件数量
number = len(file_list)
print("文件总数量为:{} ".format(number))

2.判断是否存在已有序号1,2,3,删除,再添加01_…序号(不可重复运行)

不推荐使用,适合文件本身有1,2,3等序号了,我希望删除原有序号,添加01_,02_等样式的序号。如果多次使用可能会导致你的文件名少几个字,哈哈哈哈哈TAT。当然如果你稍微会点代码,改一小下也是可以避免的啦,客制化很容易的。

import os

# 指定文件夹路径
folder_path = "这里填你的文件夹路径...D:\\folder"

# 列出文件夹中的所有文件
file_list = os.listdir(folder_path)

# 遍历文件列表并为文件添加序号
for i, file_name in enumerate(file_list):
    # 判断文件名是否已经包含序号
    if file_name[:1].isdigit():
        new_file_name = file_name[1:]
    else:
        if file_name[:2].isdigit():
            print('文件{}已经包含序号,跳过处理'.format(file_name))
        else:
            new_file_name = file_name

    # 生成新的文件名
    new_file_name = '{:02d}_{}'.format(i+1, new_file_name)
    # 重命名文件
    os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name))
    print('文件{}已经重命名为{}'.format(file_name, new_file_name))
    
# 输出修改之后的每个文件名称
document_list = os.listdir("这里填你的文件夹路径...D:\\folder")

for document_name in document_list:
    print(document_name)
    
#统计文件夹下文件数量
number = len(file_list)
print("文件总数量为:{} ".format(number))