JavaRush /Курсы /Модуль 1: Python Core /Работа с бинарными файлами

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

Модуль 1: Python Core
12 уровень , 4 лекция
Открыта

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()
2
Задача
Модуль 1: Python Core, 12 уровень, 4 лекция
Недоступна
Чтение бинарного файла
Чтение бинарного файла
2
Задача
Модуль 1: Python Core, 12 уровень, 4 лекция
Недоступна
Запись бинарных данных
Запись бинарных данных
1
Опрос
Работа с файлами, 12 уровень, 4 лекция
Недоступен
Работа с файлами
Работа с файлами
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Андрей Уровень 25
11 февраля 2026
В лекции написано, что Чтение и запись: 'r+b', 'w+b', 'a+b' - выглядит как будто это одно и тоже. Было бы хорошо дополнить, что это не совсем одно и тоже. Например дополнить так
Анатолий Уровень 51
8 февраля 2026
❤️