Domanda

Sto creando un programma che richiede un percorso e i percorsi di Windows contengono barre rovesciate, che possono essere interpretate come una sequenza di escape da Python se la lettera successiva è quella sbagliata.Ho provato string.replace() ma non funziona poiché queste barre rovesciate vengono trasformate in sequenze di escape prima che venga eseguita la funzione di sostituzione.

C'è un modo per rimuoverli e magari renderli / invece di \?

È stato utile?

Soluzione

Se ti stai chiedendo per l'utente per l'input, poi un \ andrà in una stringa come \ correttamente. Solo se si allora eval stringa dell'utente in qualche modo sarà il backslash conta come un carattere di fuga. È davvero solo bisogno di preoccuparsi di fuggire quando si scrive le stringhe all'interno del codice.

Altri suggerimenti

No, il backslash non viene interpretato come una sequenza di escape se non in Python il codice sorgente . A meno che non si sta eval () ING il percorso, che sarebbe sbagliato, io non sono sicuro perché si avrebbe un problema.

Usa il doppio \

str = 'c:\\dir\\file.txt'

print str.replace('\\','/')
print str

eccoci l'output

c:/dir/file.txt
c:\dir\file.txt
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top