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

如何根据xls表格映射关系批量匹配重命名文件夹内pdf文件

可行性结论

这个需求完全可以实现,通过简单的批量处理脚本即可自动完成全量匹配重命名,全程不需要手动逐个修改文件名。

前置准备
  • 提前备份所有待处理的PDF文件,避免操作失误导致文件名混乱、文件丢失
  • 将存储文件名映射关系的.xls表格和所有待重命名的PDF文件放在同一文件夹下
  • 安装脚本运行需要的依赖:执行命令pip install xlrd==1.2.0即可,注意xlrd版本必须为1.2.0,高版本不再支持.xls格式读取
实现脚本
import os
import xlrd

# -------------------------- 按需修改以下配置项 --------------------------
FOLDER_PATH = "./"  # PDF和xls文件所在文件夹路径,二者放同一文件夹直接保留./即可
XLS_FILE_NAME = "文件名映射表.xls"  # 替换为你自己的xls文件实际名称
# ----------------------------------------------------------------------

# 读取xls中的文件名映射关系
name_mapping = {}
workbook = xlrd.open_workbook(os.path.join(FOLDER_PATH, XLS_FILE_NAME))
worksheet = workbook.sheet_by_index(0)  # 默认读取第一个工作表,映射表不在第一个就改对应索引

# 遍历表格行存映射,第一行是表头就从第2行(索引1)开始读,没表头就把起始值改成0
for row in range(1, worksheet.nrows):
    original_name = str(worksheet.cell_value(row, 0)).strip()
    target_name = str(worksheet.cell_value(row, 1)).strip()
    if original_name and target_name:
        name_mapping[original_name] = target_name

# 遍历文件夹PDF执行重命名
success_count = 0
failed_records = []
for file in os.listdir(FOLDER_PATH):
    if file.lower().endswith(".pdf"):
        file_stem = os.path.splitext(file)[0].strip()
        if file_stem in name_mapping:
            old_full_path = os.path.join(FOLDER_PATH, file)
            new_file_name = f"{name_mapping[file_stem]}.pdf"
            new_full_path = os.path.join(FOLDER_PATH, new_file_name)
            try:
                os.rename(old_full_path, new_full_path)
                success_count += 1
                print(f"重命名成功:{file} -> {new_file_name}")
            except Exception as e:
                failed_records.append(f"{file} 重命名失败:{str(e)}")

# 输出最终统计结果
print("-"*50)
print(f"处理完成,共成功重命名{success_count}个PDF文件")
if failed_records:
    print("失败明细:")
    for record in failed_records:
        print(record)
使用说明
  • 把代码里的XLS_FILE_NAME变量值替换为你自己的.xls文件实际名称
  • 如果你的.xls表格第一行直接是文件名映射数据、没有表头,把代码循环部分range(1, worksheet.nrows)里的1改成0即可
  • 运行脚本后控制台会自动打印每个文件的处理结果,以及最终的成功、失败统计
常见问题处理
  • 如果提示重命名失败,优先检查表格里的目标文件名是否包含/ \ : * ? " < > |这类操作系统禁止作为文件名的特殊字符,提前替换后再运行即可
  • 如果提示找不到匹配项,检查表格里的原文件名是否和PDF实际文件名(去掉.pdf后缀后)完全一致,排查是否存在多余空格、全角/半角字符差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:39:17