2015-05-11 1 views
2

У меня есть список строк, а некоторые строки содержат «\ n». Я хочу записать этот список строк в текстовый файл, а затем прочитать его и сохранить в списке, используя readlines(). Я должен сохранить исходный текст; что означает не удаление новых строк из текста.Сохраните новые строковые символы в строке при записи в текстовый файл Python

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

Как я могу это достичь? Или нет способа, и я должен писать в других форматах. Благодарю.

+0

Так что же вы хотите? Вы хотите удалить новые строки или сохранить их? –

+2

Вы можете написать строки '' repr', а затем 'eval' (или' ast.literal_eval') строки при чтении их обратно в ... или просто заменить символы новой строки на некоторую «магическую строку», например, «NEWLINE» «'. –

+0

Вы уверены? Ни 'write', ни' writelines' не добавляет новые строки. Вы сами добавляете? – tdelaney

ответ

1

Следующая:

from __future__ import print_function 
strings = ["asd", "sdf\n", "dfg"] 
with open("output.txt", "w") as out_file: 
    for string in strings: 
    print(repr(string), file=out_file) 
with open("output.txt") as in_file: 
    for line in in_file: 
    print(line.strip()) 

гравюр

'asd' 
'sdf\n' 
'dfg' 

Для печати это нормально (без кавычек), вы можете использовать ast.literal_eval: print(ast.literal_eval(line.strip()))

Смежные вопросы