#python-3.x #string-formatting
Вопрос:
Предположим, что следующая строка:
s = 'rnthis is the second linerntthis line is indentedrn'
Если я запущу Python (v. 3.8.6) в интерактивном режиме, печать этой строки будет работать должным образом:
>>> print(s)
this is the second line
this line is indented
>>>
Но когда я печатаю эту строку в файл (т. Е. print(s, file = "string.txt")
), встроенные пробелы не интерпретируются, и текстовый файл содержит строку буквально (с «t» вместо вкладки и т. Д.).
Как я могу записать один и тот же интерактивный вывод в файл? Попытки с использованием str()
f-строк и format()
были безуспешными.
Ответ №1:
это сработало для меня:
with open('file.txt','w') as file:
print('rnthis is the second linerntthis line is indenteddrn',file=file)
Комментарии:
1. Это именно то, что я изначально безуспешно пытался сделать. В моем реальном коде строка на самом деле является ключом в словаре и была собрана путем объединения нескольких строк, проанализированных из файла CSV, который был прочитан в более раннем коде. Я не думаю, что это имеет значение, но просто предоставляю полную информацию.