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

如何修改Python脚本批量重命名匹配原文件名的所有扩展名文件

批量重命名脚本修改方案

核心修改逻辑

  • 移除原脚本的扩展名入参,无需手动指定需要重命名的文件后缀
  • 提前加载CSV映射表为字典,提升匹配效率
  • 遍历目标目录下的所有文件,只要文件名以{原始名}.开头即可命中,通过单次分割文件名的方式提取完整后缀,天然支持.txt、.bam、.txt.readdb.log等任意长度的扩展名格式
  • 替换原路径拼接逻辑为os.path.join,兼容不同操作系统的路径规则
  • 补充原代码缺失的sys模块导入

修改后完整代码

import os
import csv
import sys

def rename_files(path, name_map):
    # 加载文件名映射表
    orig_to_new = {}
    with open(name_map, 'r', encoding='utf-8') as csv_map:
        filereader = csv.DictReader(csv_map)
        for row in filereader:
            orig_name = row["original"].strip()
            new_name = row["new"].strip()
            orig_to_new[orig_name] = new_name
    
    # 遍历目录下所有文件执行重命名
    for filename in os.listdir(path):
        old_filepath = os.path.join(path, filename)
        # 跳过子目录,仅处理文件
        if not os.path.isfile(old_filepath):
            continue
        # 匹配原始文件名前缀
        for orig_name, new_prefix in orig_to_new.items():
            if filename.startswith(f"{orig_name}."):
                # 提取完整后缀(支持多段长扩展名)
                suffix = filename.split('.', 1)[1]
                new_filename = f"{new_prefix}_{orig_name}.{suffix}"
                new_filepath = os.path.join(path, new_filename)
                try:
                    os.rename(old_filepath, new_filepath)
                    print(f"重命名成功:{filename} → {new_filename}")
                except Exception as e:
                    print(f"重命名失败:{filename},错误信息:{str(e)}")
                # 匹配到对应规则后跳出循环,避免重复处理
                break

if __name__ == '__main__':
    _, path, name_map = sys.argv
    rename_files(path, name_map)

使用方法

运行命令无需再传入扩展名参数,格式如下:

python rename.py 待重命名目录路径 CSV映射文件路径

示例:

python rename.py /test/directory filestorename.csv

效果示例

若目标目录下存在以下文件:

  • barcode01.txt
  • barcode01.png
  • barcode01.txt.readdb.log
  • barcode02.bam

运行脚本后会自动重命名为:

  • sample01_barcode01.txt
  • sample01_barcode01.png
  • sample01_barcode01.txt.readdb.log
  • sample02_barcode02.bam

内容的提问来源于stack exchange,提问作者J-6474

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:27:03