2010-11-09 19 views
2

J'ai un fichier results.txt qui ressemble à ceci:
Python: Remplacer la fonction pour modifier les fichiers

[["12 - 22 - 30 - 31 - 34 - 39 - 36"], 
["13 - 21 - 28 - 37 - 39 - 45 - 6"], 
["2 - 22 - 32 - 33 - 37 - 45 - 11"], 
["3 - 5 - 11 - 16 - 41 - 48 - 32"], 
["2 - 3 - 14 - 29 - 35 - 42 12"], 
["14 - 30 - 31 - 36 - 44 - 47 26"]] 

Je veux remplacer le « - » dans le fichier results.txt avec « « » » il cherche comme une liste de python.

J'essaie de utiliser le code ci-dessous, mais la sortie ressemble exactement results.txt

output = open("results2.txt", 'w') 
f = open("results.txt", 'r') 
read = f.readlines() 

for i in read: 
    i.replace(" - ",'","') 
    output.write(i) 

Répondre

6
for i in read: 
    # the string.replace() function don't do the change at place 
    # it's return a new string with the new changes. 
    a = i.replace(" - ",",") 
    output.write(a) 
5

Méthodes de chaîne renvoient une nouvelle chaîne. Ecrivez ça à la place.

output.write(i.replace(" - ",",")) 
4

i.replace(" - ",'","') ne change pas i (souvenez-vous des chaînes sont immuables) de sorte que vous devez utiliser

i = i.replace(" - ",'","') 

Si le fichier est pas très grand (je devine - puisque vous lisez tout dans la mémoire à la fois avec readlines() de toute façon), vous pouvez simplement faire le fichier entier à la fois

output = open("results2.txt", 'w') 
f = open("results.txt", 'r') 
output.write(f.read().replace(" - ".'","')) 
f.close() 
output.close()