如何用Python批量重命名指定模式文件并移除文件名子串
用Python实现指定规则的文件重命名与迁移
实现思路
针对格式为WH_BEE_FULL_YYYYMMDD_HHMMSS_N.bak的文件,通过分割文件名的下划线字段,移除时分秒(HHMMSS)部分,拼接新文件名后完成文件迁移。
完整代码
import os import shutil # 配置源文件夹与目标文件夹路径 source_dir = r"F:\Source" dest_dir = r"F:\Destination" # 确保目标文件夹存在,不存在则自动创建 os.makedirs(dest_dir, exist_ok=True) # 遍历源文件夹内的所有文件 for filename in os.listdir(source_dir): # 仅处理.bak后缀且符合指定命名格式的文件 if filename.endswith(".bak") and filename.count("_") == 3: # 拆分文件名(去除.bak后缀) name_segments = filename[:-4].split("_") # 拼接新文件名:跳过时分秒部分 new_filename = f"{name_segments[0]}_{name_segments[1]}_{name_segments[3]}.bak" # 构建源文件与目标文件的完整路径 source_file_path = os.path.join(source_dir, filename) dest_file_path = os.path.join(dest_dir, new_filename) # 避免覆盖已存在的目标文件 if os.path.exists(dest_file_path): print(f"跳过:目标文件{new_filename}已存在") continue # 移动并重命名文件 shutil.move(source_file_path, dest_file_path) print(f"处理完成:{filename} → {new_filename}")
关键说明
os.makedirs(dest_dir, exist_ok=True):自动创建目标文件夹,无需手动提前建立- 文件名筛选:通过后缀和下划线数量判断,确保只处理符合格式的备份文件,避免误操作
- 防覆盖逻辑:检查目标路径是否已有同名文件,避免数据丢失
- 迁移逻辑:
shutil.move同时完成重命名与迁移操作,一步到位
内容的提问来源于stack exchange,提问作者Java
相关产品推荐
相关产品推荐

