我在 Windows 下运行 Python 编程时遇到问题。我需要使用长度超过 256 个或任何限制字符的文件路径。
现在,我基本上阅读了两种解决方案:
- 使用 kernel32.dll 中的 GetShortPathName 并以这种方式访问该文件。
这很好,但我不能使用它,因为我需要以某种方式使用路径
shutil.rmtree(short_path)
其中short_path是一条非常短的路径(类似于D:\tools\Eclipse
)并且长路径出现在目录本身中(该死的 Eclipse 插件)。
- Prepend
"\\\\?\\"
到路径
我还没有设法以任何方式完成这项工作。尝试以这种方式做任何事情总是会导致错误WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: <path here>
所以我的问题是:如何使第二个选项起作用?我强调,我需要以与选项 #1 中的示例相同的方式使用它。
OR
还有其他办法吗?
编辑:我需要在 Python 2.7 中工作的解决方案
编辑2:问题Python 长文件名支持在 Windows 中被破坏 https://stackoverflow.com/questions/1365797/python-long-filename-support-broken-in-windows确实用“魔法前缀”给出了答案,并且我在这个问题中表示我知道它。我不知道的是如何使用它。我试图将其添加到路径中,但它失败了,正如我上面所写的。
嗯,和往常一样,在我认真地询问某人二十分钟后,我似乎找到了困扰我一周的问题的答案。
所以我发现我需要确保两件事正确完成:
- 该路径只能包含反斜杠,不能包含正斜杠。
- 如果我想做一些类似列出目录的事情,我需要以反斜杠结束路径,否则Python将追加
/*.*
这是一个正斜杠,这很糟糕。
希望至少有人会发现这很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)