Python移动PDF文件报[WinError 2]系统找不到指定文件如何解决?
错误原因
- 核心错误:你对同一个PDF文件先后调用了
os.rename()和Path.rename()两次移动操作,第一次执行完成后原路径的文件已经被移动到目标文件夹,第二次操作访问原路径时自然找不到文件,直接触发[WinError 2]报错。 - 其他潜在问题:
- 未提前检测目标pdf文件夹是否存在,若文件夹未提前创建,移动操作也会报错
os.listdir()会返回路径下所有文件、文件夹名称,没有过滤文件夹的逻辑,若存在后缀为.pdf的文件夹,操作也会出现异常- 直接用字符串拼接路径,在Windows环境下容易出现斜杠匹配错误,建议使用路径拼接专用方法规避这类问题
修复后的代码
import os from pathlib import Path base_path = Path("C:/Users/farbod/Desktop") pdf_folder_path = base_path / "pdf" # 先创建目标文件夹,已存在则跳过 pdf_folder_path.mkdir(exist_ok=True) # 遍历桌面路径下所有内容 for item in base_path.iterdir(): # 仅处理后缀为.pdf的文件 if item.is_file() and item.suffix.lower() == ".pdf": target_path = pdf_folder_path / item.name # 若存在重名文件可自行增加重命名逻辑,此处示例直接移动 item.rename(target_path)
补充说明
如果需要处理子文件夹内的PDF,可将遍历逻辑替换为递归遍历即可。如果移动时出现目标路径已存在同名文件的报错,可增加重命名逻辑,比如给重名文件加序号后缀再移动。
内容的提问来源于stack exchange,提问作者farbod
相关产品推荐
相关产品推荐

