如何通过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} 不存在,跳过")
关键修改说明
- 自动补全后缀:不管Excel里的文件名是否带
.pdf,代码都会自动补全,避免因后缀缺失找不到文件。 - 路径校验:提前检查目标目录和Excel文件是否存在,快速定位路径错误。
- 异常捕获:处理重命名时的意外情况(比如新文件名已存在、权限不足等),避免脚本中断。
- 字符串处理:用
strip()去除文件名前后的空格,避免因表格里的空格导致路径错误。
额外注意事项
- 确保Excel里的
Old_name和实际文件名完全一致(Windows下文件名大小写不敏感,但Linux/macOS需严格匹配)。 - 若要避免新文件名覆盖已有文件,可以在重命名前添加
if not os.path.exists(new_path)的判断。
内容的提问来源于stack exchange,提问作者paapuru
相关产品推荐
相关产品推荐

