Python — это высокоуровневый язык программирования, который способен решать множество повседневных задач, начиная от резервного копирования и чтения e-mail, заканчивая созданием небольшой игры. В этой статье мы разберем, как работать с файлами в Python.
Особые комбинации данных, записанные в последовательностях битов, называются файлами. Информация в них оформлена, структурирована и обладает собственным именем.
В Python выделяют два типа файлов:
Существует несколько вариантов действий с файлами. Рассмотрим основные операции:
Давайте разберем каждую из них.
Для запуска файлов предусмотрена встроенная функция под названием open(). С ее помощью можно открыть любой документ. Python же будет формировать внутри себя на его основе объект. Функция принимает два следующих аргумента:
В системе предусмотрен ряд режимов для открытия, среди которых:
Каждый из этих режимов может обладать текстовым и бинарным вариантами. Во втором случае к буквенному указателю добавляется буква «b». Эти режимы могут комбинироваться.
Режим | Возможности |
r | Только чтение |
w | Запись. Если не найден, то создается новый |
x | Запись. Если не найден, вызывается исключение |
a | Запись. Не стирает данные, а добавляет в конец |
t | Открытие в формате текстового файла |
b | Открытие в виде бинарного файла |
+ | Работа в варианте и записи, и чтения |
После открытия файла сгенерируется особый файловый объект и вы сможете получить о нем сведения. Для этого существуют специальные атрибуты:
Синтаксис метода выглядит следующим образом:
f = open(file_name, access_mode)
или
f = open('exmp.txt','r')
Python позволяет читать файлы или записывать в них информацию. Важно, чтобы открытие было произведено в том формате, который позволяет выполнять эти действия.
Метод read() предназначен для чтения файла, запущенного в варианте «только для чтения». Он принимает в качестве аргумента число символов, которые требуется прочесть. То есть, если вы передадите цифру 10, то будут отображены только первые 10 знаков.
Например:
f = open('exmp.txt','r') f.read(10)
Следующей функцией будет readline(). Она получает содержимое документа по строкам и подходит для больших объемов. Здесь также существует удобный способ, позволяющий не считывать весь файл полностью, а обращаться только к нужным строкам. Это возможно благодаря объекту io.TextIOWrapper.
Для записи в файлы Python использует метод write(). При этом важно, чтобы открытие осуществлялось в режиме записи. Если файла не существовало, он будет сгенерирован. Еще одним аспектом при использовании метода является то, что в него могут передаваться исключительно строки. Если вы планируете передавать другой тип данных, то лучше заранее форматировать его в строковый тип.
Метод write() может записывать и большие объемы информации. Для этого нужно представить их в виде списка строк. Аналогично функции считывания, для записи существует построчный вариант writelines(). Python самостоятельно не расставляет переносы, поэтому продумать этот момент лучше заранее.
Пример синтаксиса:
f = open('exmp.txt','w') f.write('Привет Мир') f.close()
Менее популярным, но при этом одним из наиболее удобных способов записи можно назвать метод print(). Он выводит информацию в консоль, но если передавать в необязательный аргумент тип объекта file, то поток будет перенаправляться из консоли напрямую в файл. Главным достоинством такого подхода можно считать то, что метод print() принимает не только строковые данные. Это значит, что при необходимости он самостоятельно конвертирует информацию.
Python позволяет указывать позицию нахождения в файле. После первичного обращения вы можете получить пустую строку. Это случается из-за того, что указатель перемещен в конец. Для точного определения его позиции предусмотрен метод tell(), который говорит, в каком количестве байт от начала он расположен в данный момент. Затем можно воспользоваться методом seek(), который переведет нас на требуемую позицию. В нем также следует указывать количество байт, при этом 0 определяет начало файла, 1 – текущую позицию, 2 – конец.
Еще одной возможностью при работе с файлами будет изменение их названия. Для этого используется rename(), но предварительно необходимо импортировать специальный модуль os.
Например:
import os os.rename(exmp,file) # где exmp – изначальное имя файла, а file – новое
Открыв файл и закончив все манипуляции с ним, необходимо будет его закрыть, тем самым освободив ресурсы и удалив лишние данные. Python способен самостоятельно закрыть файл, когда объект передается другому документу. Но давайте рассмотрим, какие существуют варианты корректного закрытия:
Последний способ считается наиболее предпочтительным, так как в нем Python самостоятельно закрывает файл. Это значит, что вам не нужно дополнительно напоминать об этом в коде. Также в этом случае не будут генерироваться исключения, например, если файл не обнаружен.
Синтаксисы вариантов закрытия оформляются в следующем виде:
f = open('exmp.txt','r') f.close()
f = open('exmp.txt','r') try: #код finally: f.close()
with open('exmp.txt') as f: #код
В ряде случаев при работе с файлами могут происходить ошибки. Файл может закрыться, если к нему будут обращаться несколько программ одновременно, или произойдет ошибка разрешения, из-за которой возникнет сбой в работе. В таких случаях будет появляться IOError.
Выявить ошибки и решить их можно с помощью оператора with или конструкции кода try/except, которые применялись для корректного закрытия файлов. Они сразу предусматривают исключения, что значительно упрощает процесс работы кода.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…