использование обратной косой черты в Python (не бежать) - PullRequest
23 голосов
/ 01 августа 2010
import os
path= os.getcwd()
final= path +'\xulrunner.exe ' + path + '\application.ini'
print final

Я хочу поставить:

C: \ Python25 \ xulrunner.exe C: \ Python25 \ application.ini

Я не хочу, чтобы обратная косая черта работала как строка, я имею в виду, не хочу, чтобы она убегала или делала что-то особенное. Но я получаю ошибку

Недопустимый \ x escape

Как я могу использовать '\' как '\', а не как escape?

Ответы [ 2 ]

32 голосов
/ 01 августа 2010

Чтобы ответить на ваш вопрос напрямую, поставьте r перед строкой.

final= path + r'\xulrunner.exe ' + path + r'\application.ini'

Но лучшим решением будет os.path.join:

final = os.path.join(path, 'xulrunner.exe') + ' ' + \
         os.path.join(path, 'application.ini')

(обратная косая черта экранирует новую строку, но вы можете поместить все это в одну строку, если хотите)

Я упомяну, что вы можете использовать прямую косую черту в путях к файлам, и Python автоматически конвертирует их в правильный разделитель (обратная косая черта в Windows) по мере необходимости. Так

final = path + '/xulrunner.exe ' + path + '/application.ini'

должно работать. Но все же предпочтительнее использовать os.path.join, потому что это проясняет, что вы пытаетесь сделать.

22 голосов
/ 01 августа 2010

Вы можете избежать косой черты.Используйте \\, и вы получите только один слеш.

...