使用Python shutil库移动U盘文件夹遇FileNotFoundError求助
解决shutil.move的FileNotFoundError问题
你的报错根源很清晰:路径字符串的转义处理出错了,导致Python没法正确识别你要移动的文件夹位置。
问题出在哪?
在Python字符串里,单个反斜杠\是转义字符,用来表示特殊符号(比如\n代表换行)。你写的路径'D:\\New Folder\CN00020'里,\C会被Python当成特殊字符组合解析,而不是你实际想要的“反斜杠+字母C”,这就导致解析后的路径和你预期的D:\New Folder\CN00020不一致,自然找不到目标文件夹。
三种修复方案
你可以选其中一种来修正路径:
用双反斜杠转义:把路径里的每个反斜杠都写成
\\,让Python识别为普通的路径分隔符import shutil shutil.move('D:\\New Folder\\CN00020', 'D:\\Batch Upload')使用原始字符串:在路径字符串前加
r,这样Python会直接按字面解析路径,忽略所有转义规则import shutil shutil.move(r'D:\New Folder\CN00020', r'D:\Batch Upload')用正斜杠代替反斜杠:Python在Windows系统下也支持用正斜杠
/作为路径分隔符,完全不用处理转义问题import shutil shutil.move('D:/New Folder/CN00020', 'D:/Batch Upload')
额外要确认的点
除了路径问题,还要检查这两个细节:
- 确认源文件夹
D:\New Folder\CN00020确实存在于你的U盘(D盘)里,可以打开资源管理器直接查看 - 确认目标路径
D:\Batch Upload已经存在,如果不存在,shutil.move会尝试自动创建,但如果没有权限可能会报错,建议提前手动创建好目标目录
内容的提问来源于stack exchange,提问作者Aneesha Aggarwal




