Python使用shutil.move时报路径不存在错误但对应路径实际存在如何解决
故障解决步骤
你遇到的路径在资源管理器可访问、但Python抛出FileNotFoundError的问题,核心是Python识别的路径规则和资源管理器的显示规则存在差异,可按以下顺序排查解决:
第一步:确认源路径真实名称
资源管理器默认隐藏已知文件扩展名、末尾空格等特殊字符,先运行以下诊断代码,打印Python识别到的下载目录下所有文件/文件夹的真实名称:import os downloads_path = "C:/Users/joaom/Downloads" for item in os.listdir(downloads_path): # repr会显示所有隐藏字符,方便排查空格/后缀问题 print(repr(item))检查输出中是否存在和
ABCB完全匹配的项,常见异常情况包括:文件夹实际带后缀(如ABCB.xlsx)、名称末尾带空格(如'ABCB ')、包含零宽空格等不可见特殊字符,按输出的真实名称修改源路径即可。第二步:修复硬编码路径适配问题
如果你以管理员权限运行Python编辑器/终端,管理员账户的用户目录映射规则和普通登录用户不同,硬编码的用户路径会失效,改用自动适配的路径写法即可:import os import shutil # 自动适配当前用户的系统目录,避免硬编码错误 source = os.path.join(os.path.expanduser("~"), "Downloads", "ABCB") destination = os.path.join(os.path.expanduser("~"), "OneDrive", "Documentos", "GitHub", "Snp1000", "Performance Tables") # 移动前预校验,目标路径不存在自动创建 if not os.path.exists(source): raise FileNotFoundError(f"源路径校验失败: {source}") os.makedirs(destination, exist_ok=True) dest = shutil.move(source, destination)第三步:排查特殊文件类型问题
如果待移动的是快捷方式(.lnk)、云同步占位文件,需要在路径中补充完整后缀(如ABCB.lnk),同时暂时关闭OneDrive的按需同步功能,避免云文件未本地缓存导致Python识别失败。
内容的提问来源于stack exchange,提问作者user15464793
相关产品推荐
相关产品推荐

