2010-08-01 14 views
18
import os 
path= os.getcwd() 
final= path +'\xulrunner.exe ' + path + '\application.ini' 
print final 

Je veux la mettre sur:en utilisant la barre oblique inverse en python (pas échapper)

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

Je ne veux pas que le backslash fonctionne comme une ficelle, je veux dire ne veux pas qu'il s'échappe ou fasse quelque chose de spécial. Mais je reçois une erreur

non valide \ x échapper

Comment puis-je utiliser un « \ » comme « \ » et non une évasion?

Répondre

25

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

I mentionnera que vous pouvez utiliser des barres obliques dans les chemins d'accès aux fichiers, et Python les convertira automatiquement au séparateur correct (barre oblique inversée sous 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 car cela permet de voir clairement ce que vous essayez de faire.

+4

+1: 'os.path.join' –

+1

Python ne convertit pas'/'en' \ ', plutôt'/'est un séparateur de chemin valide sous Windows –

18

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

+1

fonctionne bien, et est rapide et facile – Vass