You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python删除目录下所有txt文件名末尾的10位数字

问题说明

你之前写的代码作用是截断文件末尾的内容,和修改文件名完全无关,因此无法实现需求。

实现思路
  • 遍历目标目录下所有.txt后缀的文件
  • 对每个文件名做格式校验,仅处理符合「主名末尾为_加10位数字」规则的文件
  • 拆分文件名的主名和后缀,删除末尾的_+10位数字部分,拼接得到新文件名
  • 执行重命名操作,自带重名检测避免覆盖现有文件
实现代码
import os
import re

# 填写要处理的目录路径,填 "." 代表当前脚本所在目录
target_dir = "."

for filename in os.listdir(target_dir):
    # 跳过非txt后缀的文件
    if not filename.endswith(".txt"):
        continue
    # 拆分主文件名和后缀
    name_part, ext = os.path.splitext(filename)
    # 校验是否符合 末尾_加10位数字 的格式
    match_res = re.match(r"^(.*)_\d{10}$", name_part)
    if not match_res:
        continue
    # 生成新文件名
    new_name = f"{match_res.group(1)}{ext}"
    # 拼接完整路径
    old_path = os.path.join(target_dir, filename)
    new_path = os.path.join(target_dir, new_name)

    # 先注释重命名相关代码,跑一遍确认输出的新旧文件名符合预期后,再取消注释执行实际操作
    # if os.path.exists(new_path):
    #     print(f"跳过{filename}:{new_name}已存在,避免覆盖")
    #     continue
    # os.rename(old_path, new_path)
    print(f"待修改:{filename} -> {new_name}")
注意事项
  • 第一次运行请先保持重命名代码注释状态,确认打印的修改映射完全符合预期后再取消注释执行,避免误操作
  • 正则匹配规则可以保证只有符合命名格式的文件会被处理,不会误改其他txt文件

内容的提问来源于stack exchange,提问作者maximus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:39:04