Бінарні файли Python
Бінарні файли на відміну від текстових зберігають інформацію у вигляді набору байт. Для роботи з ними в 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