5.1 Бинарные данные
Работа с бинарными файлами в Python несколько отличается от работы с текстовыми файлами, поскольку бинарные файлы содержат данные в формате, который не предназначен для чтения человеком. Вместо строк бинарные файлы работают с байтами.
Для работы с бинарными файлами используется функция open() с указанием режима, содержащего букву 'b' (например, 'rb' для чтения, 'wb' для записи и так далее).
Примеры открытия бинарных файлов:
- Чтение:
'rb' - Запись:
'wb' - Добавление:
'ab' - Чтение и запись:
'r+b','w+b','a+b'
Пример:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Переменная 'content' будет содержать массив байтов.
Бинарные данные (байты) — это самый низкий, самый базовый уровень представления данных. Любые данные могут быть прочитаны как бинарные.
Это значит, что текстовый файл всегда можно прочитать как бинарный, но не каждый бинарный файл можно интерпретировать как текстовый.
5.2 Чтение бинарных файлов
Чтение всего содержимого файла
Метод read() считывает всё содержимое файла в байтах.
Пример:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Чтение определённого количества байтов
Метод read(n) считывает n байтов из файла.
Пример:
file = open('example.bin', 'rb')
content = file.read(10) # Читает первые 10 байтов
print(content)
file.close()
Чтение построчно
Метод readline() считывает одну строку из файла. В случае бинарных файлов строка заканчивается символом новой строки (\n).
Пример:
file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()
Чтение всех строк
Метод readlines() считывает все строки из файла и возвращает их в виде списка байтов.
Пример:
file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
print(line)
file.close()
Методы для работы со строками могут не работать корректно, если вы читаете файл, который содержит не текст: например, архив, картинку или видео.
5.3 Запись бинарных данных
Метод write() записывает байты в файл. Данные для записи должны быть в виде байтов (bytes).
Чтение и запись изображений
Чтение изображения из файла и запись его в другой файл.
# Чтение изображения
with open('input_image.jpg', 'rb') as infile:
image_data = infile.read()
# Запись изображения
with open('output_image.jpg', 'wb') as outfile:
outfile.write(image_data)
Также можно записывать и текстовые данные:
Пример:
data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ