Запись в файл на Python
В этом посте мы обсудим, как писать в файл на Python.
1. Использование
open()
функцияПростое решение — открыть файл в режиме записи ('w'
) с помощью встроенного open()
функция, которая открывает его для записи после усечения. Файл создается, если он не существует. Вот как будет выглядеть код:
f = open(‘file.txt’, ‘w’) f.write(‘Hello, World\n’) f.close()
|
Приведенный выше синтаксис явно закрывает обработчик файла с close()
функция, и вам может потребоваться блокировка try-finally для обработки исключений. Хорошей практикой является использование with
ключевое слово, которое автоматически закрывает файл после завершения работы, даже если возникает исключение. Вот эквивалентный код, использующий with
утверждение:
with open(‘file. f.write(‘Hello, World\n’)
|
Кроме того, вы можете открыть файл 'w+'
режим, который открывает его как для чтения, так и для записи:
with open(‘file.txt’, ‘w+’) as f: f.write(‘Hello, World\n’)
|
⮚ С использованием'a'
Режим
Если вам нужно добавить текст в конец файла, если он существует, вы можете открыть его в режиме добавления ('a'
). Файл создается, если он не существует.
with open(‘file.txt’, ‘a’) as f: f.write(‘Hello, World\n’)
|
Поток всегда располагается в конце файла в 'a'
режим. Кроме того, если вам нужно прочитать текст из файла, используйте 'a+'
режим.
with open(‘file.txt’, ‘a+’) as f: f.write(‘Hello, World\n’)
|
2. Использование
pathlib
модульВ Python 3.4 вы также можете использовать pathlib
модуль. Path.write_text()
функция открывает файл в текстовом режиме, записывает в него данные и закрывает файл.
import pathlib pathlib.Path(‘file.txt’).write_text(‘Hello, World\n’)
|
3. Использование
io
модульДругим вариантом является использование io.open()
функция, которая является псевдонимом для встроенной open()
функция.
import io with io.open(«file.txt», mode=’w’, encoding=’utf-8′) as f: f. write(‘Hello, World\n’)
|
Это все о записи в файл в Python.
Оценить этот пост
Средний рейтинг 5/5. Подсчет голосов: 20
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Чтение и запись файлов в Python
Некоторые данные должны быть временными, храниться в ОЗУ во время работы приложения, а затем забываться. Однако другие должны быть постоянными. Они сохраняются на жестком диске для дальнейшего использования, и зачастую именно они больше всего заботят пользователя.
Программисты очень часто пишут код для чтения и записи файлов, но каждый язык решает эту задачу по-своему. В этой статье мы расскажем, как работать с файлами при помощи Python.
Установка Python
Скорее всего, у вас уже установлен Python. Если нет, вы можете установить его из репозитория программного обеспечения вашего дистрибутива. Например, в CentOS Stream или RHEL выполните следующую команду:
$ sudo dnf install python3
В macOS вы можете установить Python из MacPorts или Homebrew. В Windows вы можете установить Python из Chocolatey.
После установки Python откройте свой любимый текстовый редактор и приготовьтесь писать код.
Запись данных в файл с помощью Python
Если вам нужно записать данные в файл, следует сделать три главных шага:
- Открыть файл
- Записать в него данные
- Закрыть файл
В общем-то, это точно такая же последовательность шагов, которую вы используете при написании кода, редактировании фотографий или выполнении практически любых операций на компьютере. Сначала вы открываете документ, который хотите отредактировать, затем вносите некоторые изменения, а затем закрываете документ.
В Python данный процесс будет выглядеть следующим образом:
f = open('example.txt', 'w') f.write('hello world') f.close()
В этом примере первая строка открывает файл в режиме записи. Файл представлен как переменная f
, что является произвольным выбором. Мы используем
, потому что это общепринятая практика в написании кода на Python. Однако любое другое допустимое имя переменной работает так же.
Есть разные режимы, в которых вы можете открыть файл:
w
— для записи данныхr+
— для чтения и записиa
— только для добавления данных
Вторая строка в нашем коде записывает данные в файл. Данные, записанные в этом примере, представляют собой обычный текст, но вы можете записывать что угодно.
Последней строкой мы закрываем файл.
Запись данных с использованием конструкции with
Существует более короткий способ записи данных в файл, и этот метод может быть полезен для быстрого взаимодействия с файлами. Он не оставляет файл открытым, поэтому вам не нужно вызывать функцию close()
после того, как вы выполнили все действия с файлом. Этот способ записи данных предполагает использование конструкции with
:
with open('example.txt', 'a') as f: f.write('hello pythonist')
Чтение данных из файла с помощью Python
Допустим, вы (или ваш пользователь посредством вашего приложения) поместили данные в файл, и ваш код должен их получить. Тогда перед вами стоит цель – прочитать файл. Логика чтения такая же, как логика записи:
- Открыть файл
- Прочесть данные
- Закрыть файл
Опять же, этот логический поток отражает то, что вы и так делаете постоянно, просто используя компьютер (или читая книгу, если на то пошло). Чтобы прочитать документ, вы открываете его, читаете и закрываете. С компьютерной точки зрения «открытие» файла означает загрузку его в память.
На практике текстовый файл содержит более одной строки. Например, вашему коду может потребоваться прочитать файл конфигурации, в котором сохранены данные игры или текст следующей песни вашей группы. Так же, как вы не прочитываете всю книгу прямо в момент открытия, ваш код не должен распарсить весь файл целиком при загрузке в память. Вероятно, вам потребуется перебрать содержимое файла.
f = open('example. tmp', 'r') for line in f: print(line) f.close()
В первой строке данного примера мы открываем файл в режиме чтения. Файл обозначаем переменной f
, но, как и при открытии файлов для записи, имя переменной может быть произвольным. В имени f
нет ничего особенного – это просто кратчайший из возможных способов представить слово file, поэтому программисты Python часто используют его.
Во второй строке мы резервируем line
(еще одно произвольное имя переменной), для представления каждой строки f
. Это сообщает Python, что нужно выполнить итерацию по строкам нашего файла и вывести каждую из них на экран.
Чтение файла с использованием конструкции with
Как и при записи данных, существует более короткий метод чтения из файлов с использованием конструкции with
. Поскольку здесь не требуется вызов функции call()
, это более удобно для быстрого взаимодействия.
with open('example.txt', 'r') as f: for line in f: print(line)
Заключение
Сегодня мы поговорили про чтение и запись файлов с помощью Python. Есть много различных способов записи данных в файлы с помощью Python и множество способов форматирования текста, который вы пишете в файлы, с помощью JSON, YAML, TOML и т.д. Также есть очень хороший встроенный метод для создания и поддержки базы данных SQLite и множество библиотек для обработки любого количества форматов файлов, включая графику, аудио, видео и многое другое.
Возможно, вам также будет интересно:
- Чтение файлов в формате CSV в Python
- Чтение YAML-файлов в Python при помощи модуля PyYAML
- Чтение бинарных файлов с помощью Python
- Как читать excel-файлы (xlsx) при помощи Python
- Использование Python для парсинга файлов конфигурации
Перевод статьи «Reading and writing files with Python».
Запись файла Python | Как написать файл в Python
Обзор
Python предоставляет нам два метода записи в текстовые файлы:
- метод write() для вставки строки в одну строку текстового файла.
- Метод writelines() для одновременной вставки нескольких строк из списка строк в текстовый файл.
Scope
- В этой статье мы узнаем, как писать в текстовые и двоичные файлы в Python
- Во-первых, мы увидим, как писать в текстовые файлы, используя различные методы, присутствующие в Python, вместе с подходящими примерами. Затем мы узнаем, как писать в двоичные файлы на Python вместе с примером.
Запись в текстовый файл на Python
У нас есть различные режимы доступа для открытия существующего текстового файла в Pyhton и для записи в него, в зависимости от того, что нам нужно. Даже если текстовый файл еще не существует, мы можем использовать режим доступа w или a для создания текстового файла и последующей записи в него. В Python есть две функции, которые помогают нам писать в текстовые файлы:
1. Функция write() в Python:
Какие бы строки вы ни указывали в качестве параметра этой функции, она записывает их в виде одной строки в текстовый файл. Опять же, будет ли усечено существующее содержимое, зависит от режима доступа. Если вы используете режим w, содержимое будет усечено, и ваша строка будет записана. Однако в режиме a ваше существующее содержимое не будет удалено, а ваша строка будет записана после содержимого.
Теперь давайте рассмотрим пример. У нас изначально нет ни одного существующего файла с именем write.txt. Мы создаем его, используя режим w. Как только мы открываем новый файл, он явно пуст. Затем мы напишем в него содержимое.
file_obj = открыть ("запись.txt", "w")
Здесь file_obj — объект файла. Мы открываем файл с именемwriting.txt в режиме доступа w. Если этот файл не существует, поскольку мы использовали режим доступа w, он будет создан.
Теперь мы можем писать в него так:
file_obj.write("Вот как вы пишете в файл") file_obj.write("Теперь это будет записано в другую строку")
Поскольку мы использовали метод open() для открытия файла, а не метод open(), нам также необходимо закрыть файл.
Давайте посмотрим, как теперь выглядит наш файл с помощью приведенной ниже программы.
{"output":"Вот как вы пишете в файл /n Теперь это будет записано в другую строку "} печать (file_obj.read()) file_obj.close()
Несуществующий файл теперь содержит более двух строк содержимого. Попробуем снова записать в файл, только еще одну строку. Поскольку мы закрыли файл ранее, нам нужно открыть его снова.
файл = открыть ("запись.txt", "w")
Обратите внимание, как мы использовали режим доступа w. Файлwriting.txt в настоящее время существует. В предыдущий раз, когда мы использовали функцию открытия для открытия файла, его не существовало. Мы создали его, а затем открыли. На этот раз он просто открывается в режиме записи, поскольку уже существует.
file.write("Как вы думаете, где это будет записано в файле?") file.write("Очевидно, исходное содержимое будет перезаписано этими двумя строками") печать (файл. чтение()) файл.закрыть()
После запуска этого кода вы увидите следующее содержимое файла:
Как вы думаете, где это будет записано в файле? Очевидно, что исходное содержимое будет перезаписано этими двумя строками.
Чтобы сохранить исходное содержимое файла, вам придется использовать режим доступа append(a). Поскольку вы измените режим доступа, вам необходимо повторно открыть файл в этом режиме после его закрытия.
файл = открыть ("запись.txt", "а") file.write("Таким образом, я сохраню существующее содержимое в файле") печать (файл.чтение()) файл.закрыть()
Вывод
Как вы думаете, где это будет записано в файле? Очевидно, исходное содержимое будет перезаписано этими двумя строками. Таким образом, он сохранит существующее содержимое в файле.
2. Функция writelines() в Python:
Постоянное использование file.write() для каждой строки, которую мы хотим записать в ваш файл, может вызвать затруднения. Следовательно, мы можем использовать функцию writelines().
Простой способ его использования — указать список строк в качестве параметра для writelines().
строк = ["строка1", "строка2", "строка3"] file_obj.writelines(строки)
Обратите внимание, что если вы открываете файл с w или режимом доступа, вы можете только записывать в файл, но не читать из него. Точно так же, если вы открываете файл в режиме r, вы можете только читать из него, а не писать. Если вы хотите выполнить обе операции одновременно, вам следует использовать режим a+.
Запись в двоичный файл на Python
Узнав, как читать данные из двоичного файла, я уверен, что вы также знаете, как писать в него. Мы используем режим wb для записи в двоичный файл.
Пример
f = open("binfile.bin", "wb") числа = [1, 2, 3, 4, 5] обр = массив байтов (числа) ф.написать (обр) е.закрыть()
Очевидно, что двоичные данные не распознаются человеком. Поэтому, когда нам нужно записать массив чисел, таких как 1, 2, 3, 4 и 5, нам нужно сначала преобразовать их в байтовое представление, чтобы сохранить его в двоичном файле. Для этого мы используем встроенную функцию bytearray().
Теперь вы знаете все, что вам нужно знать о записи в файлы с помощью Python.
Заключение
Узнав о том, как писать в файлы в Python, Вот несколько ключевых моментов, которые вам помогут:
- Мы используем метод write() для вставки одной строки в текстовый файл и метод writelines() для вставки нескольких строк в текстовый файл.
- Чтобы что-то записать в двоичный файл, нам нужно сначала преобразовать ввод в двоичную форму.
- Чтобы преобразовать массив чисел в двоичный массив, мы можем использовать функцию bytearray().
Подробнее:
- Как удалить файл в Python
- Как прочитать файл в Python
Python Write to File — PYnative
Довольно стандартно, что большие блоки данных должны храниться в файлах. Python широко используется в аналитике данных и поставляется с некоторыми встроенными функциями для записи данных в файлы.
Мы можем открыть файл и выполнять с ним различные операции, например записывать в него новое содержимое или изменять файл для добавления содержимого в конец файла.
Прочитав этот учебник, вы узнаете : –
- Запись как в текстовые, так и в двоичные файлы
- Различные режимы записи файла
- Запись одной или нескольких строк в файл.
- Все методы записи файла, такие как
write()
иwriteline()
. - Добавление нового содержимого в конец существующего файла
- Открыть файл как для чтения, так и для записи.
Содержание
- Режимы доступа для записи файла
- Шаги для записи данных в файл на Python
- Пример: запись в текстовый файл на Python
- Запись в существующий файл
- Методы записи файла
- 7 : Запись списка строк в файл
- с оператором записи файла
- Добавление нового содержимого в существующий файл
- Добавление и чтение в том же файле
- Запись в двоичный файл
- Резюме
Режимы доступа для записи файла
Режим доступа, определяющий цель открытия файла .
Всякий раз, когда нам нужно записать текст в файл, мы должны открыть файл в одном из указанных режимов доступа. Мы можем открыть файл в основном для чтения, записи или добавления, а иногда и для выполнения нескольких операций с одним файлом.
Чтобы записать содержимое в файл, мы должны открыть файл в режиме записи. Откройте файл с помощью встроенной функции под названием открыть()
. Эта функция принимает два параметра, а именно имя файла и режим доступа, и возвращает указатель на файл.
Мы можем открыть файл для изменения или перезаписи его содержимого, используя любой из режимов, описанных в следующей таблице.
Режим доступа | Описание |
---|---|
w | Открыть файл для записи. В случае существующего файла он усекает существующее содержимое и помещает дескриптор файла в начало файла. Новый файл создается, если указанный файл не существует. |
w+ | Открытие файла для чтения и записи. В случае существующего файла он усекает все содержимое и помещает дескриптор файла в начало файла. |
wb | Открыть бинарный файл для записи. FileHandle помещается в начало файла, и существующее содержимое будет усечено. В противном случае создается новый файл. |
a | Открывает файл для записи. FileHandle будет помещен в конец файла. В случае существующего файла новое содержимое будет добавлено после существующего содержимого. В противном случае будет создан новый файл. |
a+ | Открытие файла для добавления и чтения. FileHandle помещается в конец файла. В случае существующего файла новое содержимое будет добавлено после существующего содержимого. В противном случае создается новый файл. |
Шаги для записи данных в файл в Python
Чтобы записать в файл, выполните следующие действия:
- Найдите путь к файлу
Мы можем прочитать файл, используя как относительный, так и абсолютный путь. Путь — это расположение файла на диске.
Абсолютный путь содержит полный список каталогов, необходимый для поиска файла.
Относительный путь содержит текущий каталог, а затем имя файла. - Открыть файл в режиме записи
Передать путь к файлу и режим доступа
w
функцииopen()
. Режим доступа открывает файл в режиме записи.
Например,fp= open(r'File_Path', 'w')
- Запись содержимого в файл
После открытия файла в режиме
записи
запишите текст или содержимое в файл, метод записи().
Например,fp.write('новый текст')
.
Методwrite()
добавит новый текст в начало файла. Для существующего файла это новое содержимое заменит существующее содержимое. Если файл еще не существует, будет создан новый файл, и в него будет записано содержимое. - Закрыть файл после завершения операции записи
Нам нужно убедиться, что файл будет правильно закрыт после завершения операции с файлом. Используйте
fp.close()
, чтобы закрыть файл. - Добавить содержимое в конец файла
Передать путь к файлу и режим доступа
a
в функциюopen()
, чтобы открыть файл в режиме добавления.
Например,fp= open(r'File_Path', 'a')
Далее используйтеwrite()
метод для записи содержимого в конец файла без удаления существующего содержимого
Пример: запись в текстовый файл в Python
В следующем коде показано, как записать строку в новый файл. В этом примере мы записываем одну строку в файл.
text = "Это новый контент" # запись нового содержимого в файл fp = открыть ("write_demo.txt", 'w') fp.write(текст) print('Готово') fp.close() # Открыть файл для чтения нового содержимого fp = открыть ("write_demo.txt", 'r') печать (fp.read()) fp.close()
Запись завершена Это новое содержимое
В приведенном выше примере отсутствует файл write_demo. txt, поэтому создается новый файл с таким именем. здесь мы использовали относительный путь. Содержание написано в начале.
Файл после записи в него текстаПримечание : Новый файл создается в каталоге, где находится этот скрипт Python. Используйте абсолютный путь, если вы хотите создать и записать файл в другой каталог.
Абсолютный путь содержит полный путь к файлу или каталогу, к которому нам нужно получить доступ. Он включает в себя полный список каталогов, необходимых для поиска файла.
Например, E:\PYnative\files_demos\write_demo.txt
— это абсолютный путь для обнаружения файла write_demo.txt
Пример :
fp = open(r"E:\demos\files\write_demo. тхт», «ж») fp.write('Это новый контент') fp.close()
Запись в существующий файл
В уже существующем файле при открытии файла в режиме записи существующее содержимое будет перезаписано. Дескриптор файла будет помещен в начало файла.
В приведенном ниже примере мы читаем файл для просмотра старого содержимого. Далее мы открываем файл в режиме записи для записи нового содержимого. Мы видим, что существующий контент был перезаписан новым контентом.
file_path = r"E:\demos\files\write_demo.txt" fp = открыть (путь_к_файлу, 'r') печать (fp.read()) fp.close() # перезапись существующего содержимого файла fp = открыть (путь_к_файлу, 'w') fp.write("Это перезаписанный контент") fp.close() # Прочитать файл fp = открыть (путь_к_файлу, 'r') print("Открытие файла снова...") печать (fp.read()) fp.close()
Выход
Это новый контент Снова открытие файла.. Это перезаписанное содержимое
Методы записи в файл
Python предоставляет два разных метода записи в файл. Нам не нужно импортировать какой-либо модуль для этого. Ниже приведены методы.
Метод | Описание |
---|---|
write() | Используется для записи строки в файл. Он принимает только строку в качестве аргумента. В противном случае он поднимет TypeError: аргумент write() должен иметь значение str . |
writelines() | Используется для записи списка строк в файл. Он принимает как строку, так и список в качестве аргумента. |
writelines()
: Запись списка строк в файл Мы можем записать несколько строк одновременно, используя метод writelines()
. Мы можем передать ему список строк, которые мы хотим добавить в файл. Используйте этот метод, если вы хотите записать список в файл.
строк = [str1, str2, str3] file_obj.writelines(lines)
Приведенный выше синтаксис объясняет, что список строк будет добавлен к файлу, доступ к которому осуществляется с помощью file_obj
.
Пример :
person_data = ['Имя: Эмма', '\nАдрес: Бейкер-стрит, 221', '\nГород: Лондон'] # запись строки и списка строк в файл fp = открыть ("write_demo. txt", "w") fp.writelines(person_data) fp.close() # открытие файла в режиме чтения fp = открыть ("write_demo.txt", "r") печать (fp.read()) fp.close()
Выход
Имя: Эмма Адрес: Бейкер-стрит, 221. Город: Лондон
В приведенном выше примере мы видели, что в файл был добавлен список строк. Мы добавили «\n» в начале каждой строки, чтобы каждая строка записывалась с новой строки.
Файл после записи в него списка Мы можем открыть файл, используя оператор with вместе с функцией open()
. Общий синтаксис следующий.
с открытым (__файл__, режим доступа) как f:
Ниже приведены основные преимущества открытия файла с помощью оператора with
- Оператор with упрощает обработку исключений, инкапсулируя общие задачи подготовки и очистки.
- Это также обеспечивает автоматическое закрытие файла после выхода из блока.
- Поскольку файл закрывается автоматически, это гарантирует освобождение всех ресурсов, связанных с файлом.
Давайте посмотрим на примере, как мы можем использовать это, чтобы открыть файл для записи.
name = "Написано с использованием менеджера контекста" с open("Write_demo.txt", "w") как f: f.написать (имя) # открытие файла в режиме чтения для доступа к файлу с open("Write_demo.txt", "r") как f: print(f.read())
Вывод
Написано с использованием менеджера контекста
Добавление нового содержимого в существующий файл
Если режим доступа установлен на a
, функция open поместит дескриптор файла в конец файла, а затем мы можем добавить новый текст в конец существующего файла, используя write()
и writelines()
функций.
Теперь давайте добавим некоторый контент в уже созданный ‘Write_demo.txt’.
имя = '\nЭмма' address = ['\nАдрес: Бейкер-стрит, 221', '\nГород: Лондон', '\nСтрана: Великобритания'] # добавить в файл с open("Write_demo. txt", "a") как f: f.написать (имя) f.writelines(адрес) # открытие файла в режиме чтения для доступа к файлу с open("Write_demo.txt", "r") как f: печать (f.read())
Выход :
Написано с использованием менеджера контекста Эмма Адрес: Бейкер-стрит, 221. Город: Лондон Страна: ВеликобританияФайл после добавления текста
Добавление и чтение в одном и том же файле
В приведенном выше примере мы видели, как в конце концов наш контент был добавлен к существующему контенту. Мы снова открыли файл, чтобы прочитать содержимое.
Как видите, мы открыли файл два раза, один раз для добавления и второй вызов для чтения.
Если мы попытаемся прочитать, не открывая файл снова, мы получим Исключение неподдерживаемой операции
.
имя2 = "Антоний\n" address2 = ["Бейкер-стрит, 224\n", "Лондон\n"] с open("Write_demo.txt", "a") как f: f.написать (имя2) f.writelines (адрес2) print(f.read())
Вывод
UnsupportedOperation: not readable
Можно одновременно выполнять операции добавления и чтения, используя режим доступа a+
. где мы можем открыть файл и добавить содержимое, а затем снова прочитать измененный файл. Мы можем выполнять несколько операций с одним и тем же файлом, используя знак + и режим доступа, который мы хотим выполнить.
Пример: добавление и чтение
Как упоминалось выше, метод write()
перемещает дескриптор файла в режим добавления в конце. Если мы попытаемся прочитать файл с помощью метода read()
, вы получите пустую строку. Используйте метод seek() для файлового объекта и переместите FileHandle в начало.
имя = '\nЭнтони' address = ['\nАдрес: Бейкер-стрит, 221', '\nГород: Лондон', '\nСтрана: Великобритания'] # добавить в файл с open("Write_demo.txt", "a+") как f: f.написать (имя) f.writelines(адрес) # переместить дескриптор файла в начало f.искать(0) печать(f.read())
Вывод
Написано с использованием менеджера контекста Эмма Адрес: Бейкер-стрит, 221. Город: Лондон Страна:Великобритания Антоний Адрес: Бейкер-стрит, 221. Город: Лондон Страна:Великобритания
Если вы хотите выполнять как запись, так и чтение , измените режим доступа на w+. Он открывает файл как для записи, так и для чтения. Указатель файла будет помещен в начало файла. Содержимое существующего файла будет перезаписано.
Пример :
# Запись и чтение с open("Write_demo.txt", "w+") как f: f.write('Келли') # переместить дескриптор файла в начало f.искать(0) print(f.read())
Вывод :
Kelly
Запись в двоичный файл
Функция open()
по умолчанию открывает файл в текстовом режиме. Мы можем прочитать содержимое текстового файла, используя режим доступа r
, и записать новое содержимое в текстовый файл, используя режим доступа 9.0154 в .
Для чтения или записи содержимого в двоичный файл используйте режим доступа «B». Для записи это будет wb
, а для чтения rb
.