Python: добавить содержимое в файл

В этой статье мы рассмотрим, как добавить контент в существующий файл с помощью Python. Допустим, у нас есть файл helloworld.txt, содержащий текст «Hello world!» и он находится в нашем текущем рабочем каталоге в файловой системе Unix: $ cat ./helloworld.txt Hello world! Теперь предположим, что мы хотим добавить дополнительный текст «Хорошо, что родился!» в конец этого файла из программы Python. Первый шаг - получить ссылку на файл из нашей программы. Это можно сделать с помощью

В этой статье мы рассмотрим, как добавить контент в существующий файл с помощью Python.

Допустим, у нас есть файл helloworld.txt, содержащий текст «Hello world!» и он находится в нашем текущем рабочем каталоге в файловой системе Unix:

 $ cat ./helloworld.txt 
 Hello world! 

Теперь предположим, что мы хотим добавить дополнительный текст «Хорошо, что родился!» в конец этого файла из программы Python.

Первый шаг - получить ссылку на файл из нашей программы. Это можно сделать с помощью встроенного open , используя путь / имя файла в качестве первого аргумента и режим в качестве второго аргумента, как показано ниже:

 f = open("./helloworld.txt", "a") 

Переменная f теперь содержит ссылку на файловый объект, который мы можем использовать для записи в конец файла. Если файл еще не существует, он будет создан. Обратите внимание, что второй аргумент «a» указывает режим открытия файла, в данном случае режим «Добавить». Это устанавливает позицию записи в конец файла.

Если бы мы использовали «w» (режим записи), то все, что мы записываем в файл, начнется с самого начала и перезапишет существующее содержимое.

Теперь мы можем записать содержимое в файл следующим образом:

 f.write("\nIt's good to have been born!") 
 
 f.close() 

Не забудьте вызвать close после записи в файлы, чтобы он не оставался заблокированным после выхода из программы и чтобы любой буферизованный контент в памяти был записан в файл.

Вот как выглядит файл после добавления к нему:

 $ cat ./helloworld.txt 
 Hello world! 
 It's good to have been born! 

И последнее замечание: если мы добавим «+» к аргументу режима open метода, мы сможем открыть файл как для добавления, так и для чтения. Это позволит читать и записывать в файл. Без «+» произойдет IOError , если мы попытаемся прочитать из файла. По умолчанию и чтение, и запись будут происходить в конце файла, но это можно изменить в любое время с помощью метода seek

Вот команды для этого (обратите внимание, что мы используем flush чтобы гарантировать, что новый контент будет записан в файл, прежде чем мы попытаемся его прочитать):

 f = open("./helloworld.txt", "a+") 
 f.write("I am grateful.") 
 f.flush() 
 f.seek(0) 
 content = f.read() 
 print content 
 f.close() 

А вот как выглядит окончательный файл:

 $ cat ./helloworld.txt 
 Hello world! 
 It's good to have been born! 
 I am grateful. 

об авторе

Эта статья была написана Якобом Стопаком, консультантом по программному обеспечению и разработчиком, стремящимся помочь другим улучшить свою жизнь с помощью кода. Джейкоб является создателем Initial Commit - сайта, посвященного тому, чтобы помочь любознательным разработчикам узнать, как написаны их любимые программы. Его избранный проект помогает людям изучать Git на уровне кода.

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus