如何在Python中将'\\?\'追加到文件路径前面

1 投票
2 回答
1215 浏览
提问于 2025-04-15 17:22

我在用Python处理一些很长的文件路径(在Windows系统上)时遇到了一些问题。看了这个问题这里,我发现为了能用os.stat(filepath)来处理这些长路径,我需要在长路径前面加上'\\?\'。但是,我在Python中无法创建一个以反斜杠结尾的字符串。这个问题这里提到,Python中的字符串是不能以单个反斜杠'\'结尾的。

有没有什么Python标准库或者其他地方的工具,可以让我简单地在已有的文件路径前面加上'\\?\'?或者有没有其他方法可以在Windows上用Python处理长文件路径?这看起来是个很简单的事情,但我就是搞不定。

2 个回答

0

即使是原始字符串,你也可以用反斜杠结尾,方法是:

>>> print r'\\?\D:\Blah' + '\\'
\\?\D:\Blah\

或者甚至可以这样:

>>> print r'\\?\D:\Blah' '\\'
\\?\D:\Blah\

因为在Python中,它会把多个字面字符串连接成一个。

3

"\\\\?\\" 应该能给你想要的字符串。

更详细的说:在Python中,你当然可以用反斜杠结束一个字符串。不过,如果这个字符串是“原始字符串”(就是前面加了'r'的那种),就不行了。原始字符串通常用来处理包含很多反斜杠的情况,这样可以避免出现著名的“倾斜牙签”问题;-)

撰写回答