我发现,当文件路径长度大于255个字符时,即使文件名本身长度为10个字符(其余部分是目录路径),也不能open(filepath)
。
有什么想法解决这个问题吗? (win32上的python 2.6)
答案 0 :(得分:12)
最常见的方法是在路径前加上\\\\?\\
(reference)。请注意,这会禁用路径上的某些预处理,但没有任何重要的IMO。
另外我可以注意到,在使用Python 2.7的32位Windows Server 2003上,我必须使用前缀Unicode路径(u"\\\\\\\\?\\\\"
前缀或ur"\\\\?\\"
),因为(如reference中所述)即使使用了前缀,非Unicode API函数仍可能限制为MAX_PATH
长度。
例如,ur"\\\\?\\c:\temp\....\abc.txt"
答案 1 :(得分:0)
Windows操作系统级解决方案是使用DOS SUBST命令在特定目录中定义伪驱动器。
SUBST Q: C:\really\long\path\name\full\of\sub\directories
然后您可以访问该目录中的文件Q:filename
。