Как добавить «\\?\» в начало пути к файлу в Python

StackOverflow https://stackoverflow.com/questions/1963302

  •  21-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь работать с длинными путями к файлам (Windows) в Python и столкнулся с некоторыми проблемами.После прочтения вопроса здесь, похоже, мне нужно добавить '\\?\' в начало моих длинных путей к файлам, чтобы использовать их с os.stat(filepath).Проблема, с которой я столкнулся, заключается в том, что я не могу создать в Python строку, заканчивающуюся обратной косой чертой.Вопрос здесь указывает, что вы не можете даже заканчивать строки в Python одним символом '\'.

Есть ли что-нибудь в какой-либо стандартной библиотеке Python или где-либо еще, что позволяет вам просто добавить '\\?\' в начало пути к файлу, который у вас уже есть?Или есть ли другой способ работы с длинными путями к файлам в Windows с Python?Кажется, это такая простая вещь, но я не могу понять этого хоть убей.

Это было полезно?

Решение

"\\\\?\\" должен дать вам именно ту строку, которую вы хотите.

Более длинный ответ:конечно, вы можете закончить строку в Python обратной косой чертой.Вы просто не можете этого сделать, если это «необработанная» строка (с префиксом «r»).Который вы обычно используете для строк, содержащих (много) обратных косых черт (чтобы избежать печально известного синдрома «наклоненной зубочистки» ;-))

Другие советы

Даже если строка необработана, вы можете закончить ее обратной косой чертой:

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

или даже:

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

поскольку Python объединяет литеральные строки в одну.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top