Python может записывать в текстовые файлы только строковые данные . Если вы захотите сохра-
нить в текстовом файле числовую информацию, данные придется предварительно преобразовать
в строки функцией str() .
194 Глава 10 • Файлы и исключения
Многострочная запись
Функция
write()
не добавляет символы новой строки в записываемый текст. А это
означает, что если вы записываете сразу несколько строк без включения символов
новой строки, полученный файл может выглядеть не так, как вы рассчитывали:
filename = 'programming.txt'
with open(filename, 'w') as file_object:
file_object.write("I love programming.")
file_object.write("I love creating new games.")
Открыв файл
programming .txt
, вы увидите, что две строки «склеились»:
I love programming.I love creating new games.
Если включить символы новой строки в команды
write()
, текст будет состоять
из двух строк:
filename = 'programming.txt'
with open(filename, 'w') as file_object:
file_object.write("I love programming.\n")
file_object.write("I love creating new games.\n")
Результат выглядит так:
I love programming.
I love creating new games.
Для форматирования вывода также можно использовать пробелы, символы табу-
ляции и пустые строки по аналогии с тем, как это делалось с выводом на терминал.
Присоединение данных к файлу
Если вы хотите добавить в файл новые данные вместо того, чтобы перезаписывать
существующее содержимое, откройте файл в режиме присоединения. В этом слу-
чае Python не уничтожает содержимое файла перед возвращением объекта файла.
Все строки, выводимые в файл, будут добавлены в конец файла. Если файл еще
не существует, то Python автоматически создаст пустой файл.
Изменим программу
write_message .py
и дополним существующий файл
programming .txt
новыми данными:
write_message.py
filename = 'programming.txt'
with open(filename, 'a') as file_object:
file_object.write("I also love finding meaning in large datasets.\n")
file_object.write("I love creating apps that can run in a browser.\n")
В точке аргумент
'a'
используется для открытия файла в режиме присоединения
(вместо перезаписи существующего файла). В точке записываются две новые
строки, которые добавляются к содержимому
programming .txt
:
Исключения
195
programming.txt
I love programming.
I love creating new games.
I also love finding meaning in large datasets.
I love creating apps that can run in a browser.
В результате к исходному содержимому файла добавляется новый текст.
Достарыңызбен бөлісу: