【问题标题】:How to append '\\?\' to the front of a file path in Python如何在 Python 中将 '\\?\' 附加到文件路径的前面
【发布时间】:2009-12-26 12:46:37
【问题描述】:

我正在尝试在 Python 中使用一些长文件路径 (Windows),但遇到了一些问题。在阅读了问题here 之后,看起来我需要在长文件路径的前面附加“\\?\”才能将它们与 os.stat(filepath) 一起使用。我遇到的问题是我无法在 Python 中创建以反斜杠结尾的字符串。问题here 指出在Python 中你甚至不能用一个'\' 字符来结束字符串。

在任何 Python 标准库或其他任何地方,是否有任何内容可以让您简单地将 '\\?\' 附加到您已有的文件路径的前面?或者是否有任何其他解决方法可以在 Windows 中使用 Python 处理长文件路径?这似乎是一件很简单的事情,但我一辈子都想不通。

【问题讨论】:

  • “附加到前面”是一个令人困惑的短语。您的意思可能是“前置”。

标签: python filepath backslash


【解决方案1】:

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

更长的答案:当然,您可以在 Python 中使用反斜杠结束字符串。当它是一个“原始”字符串(以'r'为前缀的字符串)时,你不能这样做。您通常将其用于包含(大量)反斜杠的字符串(以避免臭名昭著的“倾斜牙签”综合症;-))

【讨论】:

  • 原始字符串文字用于转义转义序列(\"\n\(\s 等),这就是为什么不能以反斜杠结尾的原因.
  • 是的,这行得通。我之前尝试过这个并得到了一个错误,尽管结果证明是因为我一直在使用“\\?\D:somefile”之类的文件路径而不是“\\?\D:\somefile”。
【解决方案2】:

即使是原始字符串,您也可以以反斜杠结尾:

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

甚至:

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

因为 Python 将文字字符串连接成一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多