Как напечатать строку со встроенными пробелами в python3

#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, который был прочитан в более раннем коде. Я не думаю, что это имеет значение, но просто предоставляю полную информацию.