2017-02-26 1 views
0

j'ai écrit ce simple petit programme:Comment remplacer la barre oblique inverse avec barre oblique - Python

def main (): 
with open("test.txt", "rt") as fin: 
    with open("out.txt", "wt") as fout: 
      for line in fin: 
       fout.write(line.replace("\", "/")) 
print ("done") 

main()

Je sais que « \ » est une évasion littérale en Python, mais tout ce que je besoin est pour parcourir le fichier texte et remplacer chaque backlash par une barre oblique "/".

Quelqu'un sait quoi faire?

+0

Peut-être utiliser "\\" à la place? –

+1

Copie possible de [Remplacer les barres obliques inversées par des barres obliques inversées en Python] (http://stackoverflow.com/questions/4119166/replace-backslashes-with-forward-slashes-in-python) – McGrady

Répondre

1

Vous devez vous rappeler que les chaînes en python sont interprétées. Seules les chaînes brutes ne suivent pas cette règle. Ici, je veux dire que si par exemple vous avez un "\n" inclus dans votre chaîne, il serait interprété comme une nouvelle ligne. Heureusement, les chaînes lues dans le fichier sont déjà crues.

Tout ce que vous avez à faire est d'utiliser simplement l'expression régulière:

s.replace('\\','/') 
+0

Merci! cela semble résoudre le problème que j'avais. – teleton11

+0

Vous savez comment remplacer '\ "' par 'somestring' comme dans ... 'bonjour \" pour remplacer'.replace (' \ "',' \\" ') ... Cela ne semble pas travail. – zochhuana

+0

Utiliser la cascade de remplacements: ''hello \" pour remplacer'.replace ('\\', '') .replace ('"', '')' – adgon92