Python实现批量将pptx文件重命名为指定人员姓名而非序列名称
批量按人名重命名PPT文件的Python实现方案
你现有代码的核心逻辑是固定前缀加序号生成新文件名,只要将这部分逻辑替换为对应人名列表即可,修改后代码如下:
import os, fnmatch file_path = 'C:\\Users\\Documents\\Files_To_Rename\\Many_Files\\' files_to_rename = fnmatch.filter(os.listdir(file_path), '*.pptx') # 先打印文件列表,确认顺序和你要匹配的姓名顺序一致 print("当前读取到的文件顺序:", files_to_rename) # 按上面打印的文件顺序填写对应的人员姓名,数量需和待重命名文件数量完全一致 name_list = ["bob", "sue", "jack"] # 预校验避免异常 if len(name_list) != len(files_to_rename): raise ValueError("姓名列表数量与待重命名文件数量不匹配,请检查后再运行") for i, file_name in enumerate(files_to_rename): new_file_name = f"{name_list[i]}.pptx" # 重名校验,避免覆盖已有文件 if os.path.exists(os.path.join(file_path, new_file_name)): print(f"警告:目标文件 {new_file_name} 已存在,跳过原文件 {file_name}") continue os.rename( os.path.join(file_path, file_name), os.path.join(file_path, new_file_name) ) print("重命名操作完成")
注意事项
- 运行代码第一步会打印当前目录下读取到的所有PPT文件顺序,务必确认该顺序和你填写的
name_list顺序一一对应,否则会出现命名错位的问题 - 如果原文件名本身就包含姓名信息,可直接从原文件名提取姓名无需手动维护
name_list,示例如下(假设原文件名格式为汇报_张三.pptx):
# 从原文件名提取姓名的示例逻辑 for file_name in files_to_rename: # 按下划线分割取后半段,去掉原有后缀即可得到姓名 name = file_name.split("_")[-1].replace(".pptx", "").strip() new_file_name = f"{name}.pptx" os.rename( os.path.join(file_path, file_name), os.path.join(file_path, new_file_name) )
内容的提问来源于stack exchange,提问作者Kristian
相关产品推荐
相关产品推荐

