使用Python 3
我有一个带Dropbox备份的外置硬盘。我一直在使用python将文件从此驱动器复制到另一个位置,使用os.walk
并通过文件进行迭代。 os.walk
将生成有效的文件夹和文件名。
即W:\Z Drive Backup 4-14-18\Dropbox\Autodesk 2018 Win\file.xyz
但是,在使用open
或os.stat
时,它会给我一个FileNotFoundError
。
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'W:/Z Drive Backup 4-14-18/Dropbox/Autodesk 2018 Win
打开文件属性,它会在前面显示\\?\
的位置。见照片。如果我将其添加到文件路径,我仍然会得到相同的错误。
我遇到了很多文件夹和文件,而这些文件中包含了时髦的Unicode或路径中的其他字符。我能够识别这些并用大多数str.replace
替换不良角色。我认为前面\\?\
的问题是同一类型的问题,然而,它甚至无法在python中看到我重命名的文件。
有关如何修复文件路径的任何想法?
如果我重命名该驱动器上的文件,则无法解决问题。如果我将文件复制到另一个位置,那就没问题了。但是在复制时有问题。有很多文件,所以我不想手动执行任何操作。
答案 0 :(得分:0)
从Windows 10版本1607开始,MAX_PATH限制已从常见的Win32文件和目录功能中删除。但是,您必须选择加入新行为
要选择加入,请编辑注册表项 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem @ LongPathsEnabled to 1
参考文献: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 https://bugs.python.org/issue27731