Как добавить '\\? \' В начало пути к файлу в Python - PullRequest
1 голос
/ 26 декабря 2009

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

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

Ответы [ 2 ]

3 голосов
/ 26 декабря 2009

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

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

0 голосов
/ 27 декабря 2009

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

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

или даже:

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

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

...