web-dev-qa-db-fra.com

utiliser la barre oblique inverse dans python (pour ne pas s'échapper)

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

Je veux le résultat:

c:\python25\xulrunner.exe c:\python25\application.ini

Je ne veux pas que la barre oblique inverse fonctionne comme une chaîne, je veux dire que je ne veux pas qu'elle s'échappe ou fasse quelque chose de spécial. Mais j'ai une erreur

Échappement\x non valide

Comment puis-je utiliser un "\" comme un "\" et non comme un d'échappement?

23
esafwan

Pour répondre directement à votre question, mettez r devant la chaîne.

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 s'échappe d'une nouvelle ligne, mais vous pouvez mettre le tout sur une seule ligne si vous le souhaitez)

Je mentionnerai que vous pouvez utiliser des barres obliques dans les chemins d'accès aux fichiers, et Python les convertira automatiquement au bon séparateur (barre oblique inverse sur Windows) si nécessaire. Donc

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

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

32
David Z

Vous pouvez échapper à la barre oblique. Utilisation \\ et vous obtenez une seule barre oblique.

23
avacariu