utiliser backslash en python (pas pour s'échapper))

import os
path= os.getcwd()
final= path +'xulrunner.exe ' + path + 'application.ini'
print final

je veux les mettre:

c:python25xulrunner.EXE c:python25application.ini

je ne veux pas de barre oblique inverse pour travailler en tant que chaîne, je veux dire ne voulez pas de s'échapper ou de faire quelque chose de spécial. Mais j'obtiens une erreur

non Valide x escape

Comment puis-je utiliser un '' comme un '' et pas une fuite?

21
demandé sur bignose 2010-08-01 06:19:50

2 réponses

Pour répondre directement à votre question, mettre r devant la corde.

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

mais une meilleure solution serait os.path.join:

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

(la barre oblique inverse, il s'échappe de ligne, mais vous pourriez mettre le tout sur une seule ligne si vous voulez)

je mentionnerai que vous pouvez utiliser des slashs forward dans les chemins de fichier, et Python les convertira automatiquement dans le séparateur correct (backslash sur Windows) si nécessaire. Donc

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

devrait fonctionner. Mais il est toujours préférable d'utiliser os.path.join parce que cela rend clair ce que vous essayez de faire.

29
répondu David Z 2010-08-01 02:22:03

Vous pouvez échapper à la barre. Utilisez \ et vous obtenez un seul slash.

21
répondu avacariu 2010-08-01 05:22:32