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

Работа с файлами — важный аспект программирования. Python предоставляет встроенные функции для чтения и записи файлов, что делает работу с файлами удобной и эффективной. В этом уроке мы рассмотрим основные методы чтения и записи текстовых и бинарных файлов.

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

1. Открытие файлов

Файлы в Python открываются с помощью функции open(), которая возвращает файловый объект. Функция open() принимает два основных аргумента:

  • Имя файла (строка)
  • Режим открытия файла (строка)

Режимы открытия файлов:

  • 'r': чтение (по умолчанию)
  • 'w': запись (создает новый файл или обрезает существующий)
  • 'a': добавление (открывает файл для записи, данные добавляются в конец файла)
  • 'b': бинарный режим (используется вместе с другими режимами, например 'rb' или 'wb')
  • '+': чтение и запись (используется вместе с другими режимами, например 'r+' или 'w+')

Пример открытия файла:

file = open('example.txt', 'r')  # Открытие файла для чтения

2. Чтение файлов

Python предоставляет несколько методов для чтения данных из файла:

  • read(): читает весь файл целиком
  • readline(): читает одну строку из файла
  • readlines(): читает все строки из файла и возвращает их списком

Примеры:

# Чтение всего файла
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

# Чтение файла по строкам
file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line, end='')
    line = file.readline()
file.close()

# Чтение всех строк в список
file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line, end='')
file.close()

3. Запись файлов

Для записи данных в файл используются методы:

  • write(): записывает строку в файл
  • writelines(): записывает список строк в файл

Примеры:

# Запись строки в файл
file = open('example.txt', 'w')
file.write('Hello, world!\n')
file.close()

# Запись нескольких строк в файл
lines = ['First line\n', 'Second line\n', 'Third line\n']
file = open('example.txt', 'w')
file.writelines(lines)
file.close()

4. Использование контекстного менеджера with

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

Примеры:

# Чтение файла с использованием with
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# Запись в файл с использованием with
with open('example.txt', 'w') as file:
    file.write('Hello, world!\n')

5. Работа с бинарными файлами

Для работы с бинарными файлами используются режимы 'rb' и 'wb'. В бинарном режиме данные читаются и записываются в виде байтовых объектов.

Примеры:

# Чтение бинарного файла
with open('example.bin', 'rb') as file:
    content = file.read()
    print(content)

# Запись в бинарный файл
data = b'\x00\x01\x02\x03\x04'
with open('example.bin', 'wb') as file:
    file.write(data)

Работа с файлами — важный навык для любого программиста. Python предоставляет удобные и мощные инструменты для чтения и записи как текстовых, так и бинарных файлов. Использование контекстного менеджера with позволяет писать более безопасный и чистый код, автоматически управляя открытием и закрытием файлов.