Некоторые данные должны быть временными, храниться в ОЗУ во время работы приложения, а затем забываться. Однако другие должны быть постоянными. Они сохраняются на жестком диске для дальнейшего использования, и зачастую именно они больше всего заботят пользователя.
Программисты очень часто пишут код для чтения и записи файлов, но каждый язык решает эту задачу по-своему. В этой статье мы расскажем, как работать с файлами при помощи Python.
Скорее всего, у вас уже установлен Python. Если нет, вы можете установить его из репозитория программного обеспечения вашего дистрибутива. Например, в CentOS Stream или RHEL выполните следующую команду:
$ sudo dnf install python3
В macOS вы можете установить Python из MacPorts или Homebrew. В Windows вы можете установить Python из Chocolatey.
После установки Python откройте свой любимый текстовый редактор и приготовьтесь писать код.
Если вам нужно записать данные в файл, следует сделать три главных шага:
В общем-то, это точно такая же последовательность шагов, которую вы используете при написании кода, редактировании фотографий или выполнении практически любых операций на компьютере. Сначала вы открываете документ, который хотите отредактировать, затем вносите некоторые изменения, а затем закрываете документ.
В Python данный процесс будет выглядеть следующим образом:
f = open('example.txt', 'w') f.write('hello world') f.close()
В этом примере первая строка открывает файл в режиме записи. Файл представлен как переменная f
, что является произвольным выбором. Мы используем f
, потому что это общепринятая практика в написании кода на Python. Однако любое другое допустимое имя переменной работает так же.
Есть разные режимы, в которых вы можете открыть файл:
w
— для записи данныхr+
— для чтения и записиa
— только для добавления данныхВторая строка в нашем коде записывает данные в файл. Данные, записанные в этом примере, представляют собой обычный текст, но вы можете записывать что угодно.
Последней строкой мы закрываем файл.
Существует более короткий способ записи данных в файл, и этот метод может быть полезен для быстрого взаимодействия с файлами. Он не оставляет файл открытым, поэтому вам не нужно вызывать функцию close()
после того, как вы выполнили все действия с файлом. Этот способ записи данных предполагает использование конструкции with
:
with open('example.txt', 'a') as f: f.write('hello pythonist')
Допустим, вы (или ваш пользователь посредством вашего приложения) поместили данные в файл, и ваш код должен их получить. Тогда перед вами стоит цель – прочитать файл. Логика чтения такая же, как логика записи:
Опять же, этот логический поток отражает то, что вы и так делаете постоянно, просто используя компьютер (или читая книгу, если на то пошло). Чтобы прочитать документ, вы открываете его, читаете и закрываете. С компьютерной точки зрения «открытие» файла означает загрузку его в память.
На практике текстовый файл содержит более одной строки. Например, вашему коду может потребоваться прочитать файл конфигурации, в котором сохранены данные игры или текст следующей песни вашей группы. Так же, как вы не прочитываете всю книгу прямо в момент открытия, ваш код не должен распарсить весь файл целиком при загрузке в память. Вероятно, вам потребуется перебрать содержимое файла.
f = open('example.tmp', 'r') for line in f: print(line) f.close()
В первой строке данного примера мы открываем файл в режиме чтения. Файл обозначаем переменной f
, но, как и при открытии файлов для записи, имя переменной может быть произвольным. В имени f
нет ничего особенного – это просто кратчайший из возможных способов представить слово file, поэтому программисты Python часто используют его.
Во второй строке мы резервируем line
(еще одно произвольное имя переменной), для представления каждой строки f
. Это сообщает Python, что нужно выполнить итерацию по строкам нашего файла и вывести каждую из них на экран.
Как и при записи данных, существует более короткий метод чтения из файлов с использованием конструкции with
. Поскольку здесь не требуется вызов функции call()
, это более удобно для быстрого взаимодействия.
with open('example.txt', 'r') as f: for line in f: print(line)
Сегодня мы поговорили про чтение и запись файлов с помощью Python. Есть много различных способов записи данных в файлы с помощью Python и множество способов форматирования текста, который вы пишете в файлы, с помощью JSON, YAML, TOML и т.д. Также есть очень хороший встроенный метод для создания и поддержки базы данных SQLite и множество библиотек для обработки любого количества форматов файлов, включая графику, аудио, видео и многое другое.
Возможно, вам также будет интересно:
Перевод статьи «Reading and writing files with Python».
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…
В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны.…