Windows上Python中的长路径

2024-09-23 10:29:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在Windows下运行Python时,我遇到了一个问题。我需要处理超过256个字符的文件路径。 现在,我基本上了解了两种解决方案:

  1. 使用kernel32.dll中的GetShortPathName并以这种方式访问文件。

那很好,但我不能用,因为我需要用某种方式

shutil.rmtree(short_path)

其中短路径是一个非常短的路径(类似于D:\tools\Eclipse),长路径出现在目录本身(该死的Eclipse插件)。

  1. 在路径前面"\\\\?\\"

我怎么也没能把这件事做好。尝试这样做总是会导致错误WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: <path here>

所以我的问题是:我如何让第二个选项起作用?我强调,我需要像选项1中的示例那样使用它。

或者

还有别的办法吗?

编辑:我需要在Python2.7中工作的解决方案

EDIT2:问题Python long filename support broken in Windows确实给出了带有“magic prefix”的答案,我在这个问题中声明我知道它。我不知道怎么用。我试着把它放在路径前面,但是失败了,正如我上面写的。


Tags: 文件path路径windows选项方式解决方案filename
1条回答
网友
1楼 · 发布于 2024-09-23 10:29:39

看来,和往常一样,在我认真地问了别人20分钟后,我找到了困扰我一周的答案。

所以我发现我需要确保两件事是正确的:

  1. 路径只能包含反斜杠,不能包含正斜杠。
  2. 如果我想列出一个目录,我需要用反斜杠结束路径,否则Python会在它后面附加/*.*,这是一个正斜杠,这是不好的。

希望至少有人会觉得这个有用。

相关问题 更多 >