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

批量重命名文件夹中CSV文件:移除文件名最后下划线后的内容

解决CSV文件批量重命名问题

你的需求是移除文件名最后一个下划线后的随机数字部分,保留原始前缀和.csv后缀,下面是正确的实现代码:

import pathlib

DATA_DIR = pathlib.Path('C:\\Users\\dvs\\documents\\data')

for old_path in DATA_DIR.glob('*.csv'):
    # 获取不带后缀的文件名(如"data_AA_10_344362")
    filename_stem = old_path.stem
    # 从右侧仅拆分一次下划线,提取前缀部分
    new_stem = filename_stem.rsplit('_', 1)[0]
    # 构造新文件路径,保留原目录和.csv后缀
    new_path = old_path.with_name(f"{new_stem}.csv")
    # 执行重命名
    old_path.rename(new_path)

原代码的问题说明:

  1. Path对象直接调用split错误:old是pathlib.Path实例,不是字符串,不能直接使用split('_')方法,需要先通过old.stem获取文件名主体部分。
  2. 丢失文件后缀:原代码拼接后的new没有保留.csv后缀,会导致文件被重命名为无后缀格式,不符合需求。
  3. 路径处理不规范:使用os.rename处理Path对象虽然在部分环境下兼容,但pathlib.Path自身的rename方法更适配跨平台路径规则,更可靠。

代码优势:

  • 使用rsplit('_', 1)仅拆分最后一个下划线,即使文件名有更多下划线也能正确处理,适配性更强。
  • 通过with_name方法直接替换文件名部分,无需手动拼接路径字符串,避免路径格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:30:47