使用Python重命名文件去除文件名内日期时间后缀的代码求助
Python 文件重命名实现方案
实现思路
通过正则匹配待删除的冗余字符(日期时间串、copy关联后缀),结合Python标准库os的文件操作能力完成重命名,不需要安装第三方依赖。
具体步骤
- 导入依赖:
os用于文件操作,re用于正则匹配冗余字符 - 定义匹配规则:适配你给出的
060921-1516格式的日期时间串、以及copy开头的冗余后缀 - 拆分文件名的主名和扩展名,对主名做正则替换去除冗余内容
- 校验原文件存在后执行重命名操作
可运行代码
import os import re # 配置参数 original_file_name = "xyz_submission 060921-1516 copy060921-1516" # 如果文件有扩展名(比如txt、pdf),直接把扩展名写在原文件名里即可,代码会自动保留 # 正则匹配规则:匹配日期时间串、copy+日期时间的冗余后缀 pattern = r'\s*\d{6}-\d{4}\s*|\scopy\d{6}-\d{4}' # 拆分主名和扩展名 name_part, ext_part = os.path.splitext(original_file_name) # 替换冗余内容 clean_name = re.sub(pattern, '', name_part).strip() # 拼接得到最终文件名 new_file_name = f"{clean_name}{ext_part}" # 执行重命名,先判断原文件是否存在避免报错 if os.path.exists(original_file_name): os.rename(original_file_name, new_file_name) print(f"重命名完成,新文件名为:{new_file_name}") else: print(f"错误:未找到原文件 {original_file_name}")
注意事项
- 执行代码前建议先注释掉
os.rename行,打印new_file_name确认结果符合预期后再执行实际重命名操作,避免误操作 - 如果需要批量处理同规则的文件,只需遍历目标目录下的所有文件名,循环执行上述逻辑即可
- 若后续日期时间格式有变化,调整正则规则中的数字位数、分隔符即可适配
内容的提问来源于stack exchange,提问作者harit marwah
相关产品推荐
相关产品推荐

