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

Voglio che il fuori messo:usando una barra inversa in Python (non per sfuggire)

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

Non voglio che il backslash funzioni come stringa, voglio dire non voglio che scappi o faccia qualcosa di speciale. Ma ottengo un errore

non valido \ x sfuggire

Come posso utilizzare un '\' come un '\' e non una via di fuga?

risposta

25

Per rispondere direttamente alla tua domanda, inserisci r davanti alla stringa.

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

ma una soluzione migliore sarebbe os.path.join:

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

(il backslash c'è sfuggire a un ritorno a capo, ma si potrebbe mettere il tutto su una linea, se si desidera)

I menzionerò che puoi usare le barre in avanti nei percorsi dei file, e Python le convertirà automaticamente nel separatore corretto (backslash su Windows) se necessario. Quindi

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

dovrebbe funzionare. Ma è comunque preferibile usare os.path.join perché ciò rende chiaro ciò che stai cercando di fare.

+4

+1: 'os.path.join' –

+1

Python non converte'/'in' \ ', piuttosto'/'è un separatore di percorso valido su Windows –

18

È possibile sfuggire alla barra. Usa \\ e ottieni solo una barra.

+1

funziona bene ed è semplice e veloce – Vass

Problemi correlati