Бінарні файли на відміну від текстових зберігають інформацію у вигляді набору байт. Для роботи з ними в Python необхідний вбудований модуль pickle. Цей модуль надає два методи:
- dump(obj, file): записує об'єкт obj в бінарний файл file
- load (file): зчитує дані з бінарного файлу в об'єкт
При відкритті бінарного файлу на читання або запис також треба враховувати, що нам потрібно застосовувати режим "b" в доповнення до режиму запису ("w") або читання ("r"). Припустимо, треба треба зберегти два об'єкти:
import pickle FILENAME = " user.dat" name = "Tom" age = 19 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 ми можемо прочитати ці об'єкти. Консольний вивід програми:
Подібним чином ми можемо зберігати і зчитувати з файлу набори об'єктів:
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])
Залежно від того, який об'єкт ми записували функцією dump, той самий об'єкт буде повернутий функцією load при зчитуванні файлу.
Консольний вивід:
Ім'я: Alice Вік: 23 Одружений (заміжня): False
Ім'я: Bob Вік: 34 Одружений(заміжня): False