2010-11-09 2 views
2

У меня есть results.txt файл, который выглядит следующим образом:
Python: Заменить функции для редактирования файлов

[["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"]] 

Я хочу, чтобы заменить «-» в файле results.txt с «„“», так это ищет как список python.

Стараюсь использовал код ниже, но вывод выглядит точно так же, как results.txt

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

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

ответ

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

метода строки возвращает новую строку. Вместо этого напишите.

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

i.replace(" - ",'","') не меняет i (помните строки являются неизменными), поэтому вы должны использовать

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

Если файл не очень большой (я предполагаю, - так как вы читаете все это в память сразу с readlines()), вы можете просто сделать весь файл сразу

output = open("results2.txt", 'w') 
f = open("results.txt", 'r') 
output.write(f.read().replace(" - ".'","')) 
f.close() 
output.close() 
Смежные вопросы