Открытие и закрытие файлов в Python - это основные операции для работы с файловой системой. Давайте рассмотрим их более подробно:
Открытие файла
Для открытия файла в Python используется функция `open()`. Эта функция принимает два обязательных аргумента: имя файла и режим доступа. Режим доступа определяет, для чего открыт файл: для чтения, записи, добавления и т. д.
Режим открытия | Описание |
'r' | Открытие файла для чтения. |
'w' | Открытие файла для записи (файл будет создан, если не существует, и перезаписан, если существует). |
'a' | Открытие файла для добавления (новые данные будут добавляться в конец файла). |
'rb' | Открыть файл для чтения в бинарном режиме. |
'wb' | Открыть файл для записи в бинарном режиме. |
'ab' | Открыть файл для добавления в бинарном режиме. |
'r+' |
Открыть файл для чтения и записи. |
file = open("example.txt", "r")
Закрытие файла
После завершения работы с файлом его следует закрыть с помощью метода `close()`. Закрытие файла освобождает ресурсы операционной системы, используемые файлом.
file.close()
Контекстный менеджер with
Для обеспечения автоматического закрытия файла после работы с ним рекомендуется использовать контекстный менеджер `with`. Контекстный менеджер `with` гарантирует корректное закрытие файла даже в случае возникновения исключения. Пример использования контекстного менеджера `with`:
with open("example.txt", "r") as file:
data = file.read()
print(data) # Файл автоматически закроется после выхода из блока with
Проверка существования файла
Для проверки существования файла можно использовать функцию `os.path.exists()`. Эта функция возвращает `True`, если файл существует, и `False` в противном случае.
import os
if os.path.exists("example.txt"):
print("Файл существует")
else:
print("Файл не существует")
Работа с файлом в режиме бинарного доступа
Кроме текстового режима доступа, файл можно открыть в бинарном режиме, указав `'b'` в режиме доступа. В бинарном режиме файл считывается и записывается в байтах, что полезно, например, при работе с изображениями или архивами.
with open("image.jpg", "rb") as file:
data = file.read()