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

如何通过Excel批量修改目录中PDF文件名?遇FileNotFoundError求助

批量修改PDF文件名的问题解决方法

你的代码出现FileNotFoundError,核心原因是Excel表格里的Old_name列未包含.pdf后缀,导致代码拼接的旧文件路径找不到实际存在的PDF文件(比如实际文件是Nike.pdf,但代码里尝试查找Nike)。另外也需要确认目标目录、Excel文件的路径是否正确。

修正后的代码

import os
import pandas as pd

# 目标PDF文件所在目录
directory = r"C:\x\x\x\PDF"
# Excel文件路径,若不在脚本同目录请填写完整路径
excel_path = "New_name.xlsx"

# 先校验目录是否存在
if not os.path.isdir(directory):
    print(f"错误:目录 {directory} 不存在,请检查路径")
    exit()

# 读取Excel文件,捕获文件不存在的情况
try:
    df = pd.read_excel(excel_path)
except FileNotFoundError:
    print(f"错误:Excel文件 {excel_path} 不存在,请检查路径")
    exit()

# 遍历表格行批量重命名
for index, row in df.iterrows():
    old_name = str(row["Old_name"]).strip()
    new_name = str(row["New_name"]).strip()
    
    # 自动补全.pdf后缀(如果文件名本身没带的话)
    if not old_name.endswith(".pdf"):
        old_name += ".pdf"
    if not new_name.endswith(".pdf"):
        new_name += ".pdf"
    
    old_path = os.path.join(directory, old_name)
    new_path = os.path.join(directory, new_name)
    
    # 检查旧文件存在再执行重命名,同时捕获异常
    if os.path.exists(old_path):
        try:
            os.rename(old_path, new_path)
            print(f"已重命名:{old_path} → {new_path}")
        except Exception as e:
            print(f"重命名失败 {old_path}:{str(e)}")
    else:
        print(f"警告:文件 {old_path} 不存在,跳过")

关键修改说明

  1. 自动补全后缀:不管Excel里的文件名是否带.pdf,代码都会自动补全,避免因后缀缺失找不到文件。
  2. 路径校验:提前检查目标目录和Excel文件是否存在,快速定位路径错误。
  3. 异常捕获:处理重命名时的意外情况(比如新文件名已存在、权限不足等),避免脚本中断。
  4. 字符串处理:用strip()去除文件名前后的空格,避免因表格里的空格导致路径错误。

额外注意事项

  • 确保Excel里的Old_name和实际文件名完全一致(Windows下文件名大小写不敏感,但Linux/macOS需严格匹配)。
  • 若要避免新文件名覆盖已有文件,可以在重命名前添加if not os.path.exists(new_path)的判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:45:06