Россия и Беларусь начали и продолжают войну против народа Украины!

Работа с файлами в Python. Чтение и запись

  Акод  | 

  Обновл. 8 Май 2023  | 

 490

Файл — это контейнер для хранения данных. Когда мы хотим читать из файла или записывать в него, нам нужно сначала его открыть. После того, как мы закончили чтение/запись, нам нужно закрыть файл, чтобы освободить ресурсы, связанные с ним.

Таким образом, в Python операции с файлами выполняются в следующем порядке:

   открыть файл;

   чтение или запись;

   закрыть файл.

Открыть файл в Python

В Python для открытия файлов используется метод open(). Например, у нас есть файл test.txt со следующим содержимым:

Теперь попробуем открыть этот файл с помощью функции open():

Здесь мы создали файловый объект с именем file1. Его можно использовать для работы с файлами и каталогами.

По умолчанию файлы открыты в режиме чтения (не могут быть изменены). Вышеприведенный код равнозначен:

Здесь "r" означает, что файл открыт для чтения.

Режим Описание
r Открыть файл для чтения. (используется по умолчанию)
w Открыть файл для записи. Создает новый файл, если он не существует, или удаляет содержимое файла, если он существует.
x Открыть файл для эксклюзивного создания. Если файл уже существует, операция завершится неудачно.
a Открыть файл для добавления данных в конец файла без удаления текущего содержимого. Создает новый файл, если он не существует.
t Открыть файл в текстовом режиме. (используется по умолчанию)
b Открыть файл в двоичном режиме.
+ Открыть файл для обновления (чтение и запись).

Вот несколько простых примеров того, как открыть файл в разных режимах:

Чтение файлов в Python


В Python для чтения файлов используется метод read(). Например:

Результат:

This is a test file.
Hello from the test file.

Обратите внимание на строку:

Здесь file1.read() читает файл test.txt и сохраняет его в переменную read_content.

Закрыть файл в Python

Когда мы закончили выполнять операции с файлом, нам нужно его правильно закрыть. Закрытие файла освобождает ресурсы, которые были задействованы для работы с ним. Это делается с помощью метода close(). Например:

Результат:

This is a test file.
Hello from the test file

Здесь мы использовали метод close() для закрытия файла. После выполнения операции с файлом мы всегда должны закрывать файл; это важный момент.

Обработка исключений в файлах


Если во время выполнения какой-либо операции с файлом возникает исключение, программа завершает свое выполнение, не закрывая при этом файлы. Одним из решений является использование блока try...finally.

Например:

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

Использование синтаксиса with…open

В Python мы можем использовать синтаксис with...open для автоматического закрытия файла. Например:

Примечание: Поскольку в данном варианте не нужно беспокоиться о закрытии файла, рекомендуется всегда использовать синтаксис with...open.

Запись в файл в Python


При записи в файл необходимо помнить две вещи:

   Если мы пытаемся открыть несуществующий файл, создается новый файл.

   Если файл уже существует, его содержимое удаляется, а в файл добавляется новое содержимое.

Для того чтобы записать данные в файл в Python, нам нужно открыть его в режиме записи, указав "w" в функции open() в качестве второго аргумента.

Предположим, у нас нет файла с именем test2.txt. Давайте посмотрим, что произойдет, если мы выполним запись в файл test2.txt:

Здесь создается новый файл test2.txt с содержимым, указанным внутри методов write():

Методы для работы с файлами в Python

Метод Описание
close() Закрывает открытый файл. Ничего не происходит, если файл уже закрыт.
detach() Отделяет базовый двоичный буфер от TextIOBase и возвращает его.
fileno() Возвращает целое число файла (файловый дескриптор).
flush() Очищает буфер записи в файловом потоке.
isatty() Возвращает True, если поток файлов является интерактивным.
read(n) Считывает не более n символов из файла. Выполняет чтение до конца файла, если n является отрицательным или None.
readable() Возвращает True, если из файлового потока можно считать данные.
readline(n=-1) Считывает и возвращает одну строку из файла. Считывает не более n байт, если указано.
readlines(n=-1) Считывает и возвращает список строк из файла. Считывает не более n байт/символов, если указано.
seek(offset,from=SEEK_SET) Изменяет позицию файла на offset байтов, относительно from (start, current, end).
seekable() Возвращает True, если файловый поток поддерживает произвольный доступ.
tell() Возвращает целое число, представляющее текущую позицию файлового объекта.
truncate(size=None) Изменяет размер файлового потока до size байт. Если размер не указан, размер изменяется относительно текущего местоположения.
writable() Возвращает True, если в файловый поток можно выполнить запись.
write(s) Записывает строку (s) в файл и возвращает количество записанных символов.
writelines(lines) Записывает список строк (lines) в файл.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *