Документация по Python. Теоретические материалы, и практические задачи

python бинарный файл

Продолжаем цикл уроков по работе с файлами в Python. Бинарные файлы — это файлы в которых информация хранится в виде набора байтов. Для того, что бы вы смогли работать с такими типами файлов в Python, необходимо воспользоваться стандартным модулем Pickle. У данного модуля есть два метода:

  • dump(obj, file) — предназначен для записи объекта в файл
  • load(file) — предназначен для считывания из файла

При работе с бинарными файлами, будь то чтение или запись, нам нужно указывать дополнительный режим b, к уже знакомым нам режимам w или r. Ниже рассмотрим небольшой пример.

                    
import pickle
 
FILENAME = "user.dat"
 
name = "Tom"
age = 29
 
with open(FILENAME, "wb") as file:
    pickle.dump(name, file)
    pickle.dump(age, file)
 
with open(FILENAME, "rb") as file:
    name = pickle.load(file)
    age = pickle.load(file)
    print("Имя:", name, "\tВозраст:", age)

Используем функцию dump, и записываем последовательно два объекта. Соответственно для чтения, нам так же нужно воспользоваться функцией load. Как видите, при работе с бинарными файлами в python, нет ничего сложного. Результат выполнения программы:

                    
Имя: Tom 		Возраст: 29

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

                    
import pickle
 
FILENAME = "users.dat"
 
users = [
    ["Tom", 28, True],
    ["Alice", 23, False],
    ["Bob", 34, False]
]
 
with open(FILENAME, "wb") as file:
    pickle.dump(users, file)
 
 
with open(FILENAME, "rb") as file:
    users_from_file = pickle.load(file)
    for user in users_from_file:
        print("Имя:", user[0], "\tВозраст:", user[1], "\tЖенат(замужем):", user[2])
  1. Используем функцию dump
  2. Записываем с ее помощью данные из переменной users
  3. Используем функцию load
  4. Запускаем цикл, и перебираем все данные внутри нашего файла

Результат работы нашей программы:

Имя: Tom 		Возраст: 28 	Женат(замужем): True
Имя: Alice 		Возраст: 23 	Женат(замужем): False
Имя: Bob 		Возраст: 34 	Женат(замужем): False

Оставьте комментарий

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