2.01M
Category: programmingprogramming

Урок 13

1.

Урок 13. ВВЕДЕНИЕ В
КОНСЕРВАТИЗАЦИЮ. ЧТЕНИЕ
ДАННЫХ ИЗ БИНАРНОГО
ФАЙЛА

2.

Как пройдет
наше занятие
1 Познакомимся с понятием консерватизация
2 Научимся читать данные из бинарного файла
что такое произвольный доступ к
3 Узнаем,
законсервированным
2

3.

ВВЕДЕНИЕ В
КОНСЕРВАЦИЮ
3

4.

Консервация
Как ты думаешь, что такое
консервация?
4

5.

Консервация
Консервация в программировании - это долговременное хранение
структурированных данных.
Разберем, что это такое, простыми словами!
5

6.

Консервация
Консервация в программировании - это как «заготовка на зиму» для еды,
только для программ
Когда мы консервируем овощи, мы их
моем, режем, кладём в банку,
заливаем маринадом и закрываем
крышкой, чтобы они долго хранились и
не портились.
6

7.

Консервация
В программировании консервация — это способ "упаковать" данные или
состояние программы, чтобы их можно было сохранить, а потом
использовать снова, даже если программа выключится.
7

8.

Консервация
Представь, что ты играешь в компьютерную игру
8

9.

Консервация
Nебе нужно сохранить прогресс, чтобы потом продолжить с того же места.
Когда ты нажимаешь "Сохранить игру“.
9

10.

Консервация
Компьютер как будто "консервирует"
твои достижения: где ты находишься,
сколько у тебя очков, какие предметы
собрал. Это сохраняется в файл, и
потом ты можешь "открыть банку"
(загрузить игру) и продолжить.
10

11.

Как
использовать
консервацию?
Используем модуль pickle для записи и чтения данных.
Модуль shelve обеспечивается произвольный доступ к
законсервированным объектам.
Нет необходимости устанавливать pickle, так как он уже есть в Python 3.9 и выше.
Нужно только импортировать pickle
11

12.

Как
использовать
консервацию?
Посмотрим, как можно законсервировать данные в файл
import pickle
first_name = ["Оля", "Вася", "Коля"]
last_name = ["Петрова", "Пупкин", "Смирнов"]
# Запись двух объектов
with open("names.dat", "wb") as datafile:
pickle.dump(first_name, datafile)
pickle.dump(last_name, datafile)
12

13.

Как
использовать
консервацию?
Посмотрим, как можно законсервировать данные в файл
import pickle
first_name = ["Оля", "Вася", "Коля"]
last_name = ["Петрова", "Пупкин", "Смирнов"]
# Запись двух объектов
with open("names.dat", "wb") as datafile:
pickle.dump(first_name, datafile)
pickle.dump(last_name, datafile)
Итак, у нас есть два
списка, которые нам
нужно записать в файл.
Мы открываем файл в
режиме "wb".
13

14.

Режимы доступа
к бинарным
файлам
Режим
Описание
"rb"
Чтение информации из бинарного файла, если файл не существует,
вы получите сообщение об ошибке
"wb"
Запись в бинарный файл. Если он существует, он будет перезаписан.
Если не существует, то будет создан
"ab"
Дозапись в бинарный файл. Если он существует, новые данные
будут записаны в его конец, если не существует, то будет создан
".rb+"
Чтение и запись в бинарный файл. Если файл не существует, вы
получите сообщение об ошибке
"wb+"
Запись и чтение из бинарного файла. Если не существует, то будет
создан, если существует, то будет перезаписан
"ab+"
Дозапись и чтение бинарного файла. Если существует, данные будут
дописаны в конец, если не существует, то будет создан
14

15.

Как
использовать
консервацию?
Кодировку указывать не нужно, поскольку данные
будут записаны в двоичном виде
15

16.

Как
использовать
консервацию?
Кодировку указывать не нужно, поскольку данные
будут записаны в двоичном виде
После того, как мы открыли файл в бинарном режиме, с помощью метода
pickle.dump() мы можем записать наши списки в открытый файл.
16

17.

Как
использовать
консервацию?
Вы можете законсервировать объекты разных типов:
Числа
Строки
Кортежи
Списки
Словари
17

18.

ТЕСТ 1
18

19.

ЗАДАНИЕ 1
19

20.

Самостоятельная
работа
Задание
Попробуйте записать свои имя и фамилию в список и сохранить его в файл.
20

21.

ЧТЕНИЕ ДАННЫХ ИЗ
БИНАРНОГО ФАЙЛА
21

22.

Чтение данных
Используем pickle.load() для чтения данных.
Пример кода чтения:
import pickle
first_name = ["Оля", "Вася", "Коля"]
last_name = ["Петрова", "Пупкин", "Смирнов"]
# Запись двух объектов

# Чтение двух объектов
with open("names.dat", "rb") as datafile:
fnames = pickle.load(datafile)
lnames = pickle.load(datafile)
print(fnames)
print(lnames)
22

23.

Чтение данных
Альтернатива (запись одним объектом):
Можно также записать один кортеж или словарь:
# Запись
with open("names.dat", "wb") as f:
pickle.dump((first_name, last_name), f)
# Чтение
with open("names.dat", "rb") as f:
fnames, lnames = pickle.load(f)
23

24.

Самостоятельная
работа
Задание
Попробуйте записать одним объектом и выведите результат на экран
24

25.

ПРОИЗВОЛЬНЫЙ ДОСТУП К
ЗАКОНСЕРВИРОВАННЫМ
ДАННЫМ
25

26.

Произвольный
доступ
Модуль shelve позволяет обращаться к данным как к словарю.
Первым делом нам нужно создать полку s
import shelve
first_name = ["Оля", "Вася", "Коля"]
last_name = ["Петрова", "Пупкин", "Смирнов"]
# Запись данных
with shelve.open("names_shelf") as data:
data["first"] = first_name
data["last"] = last_name
Функции shelve.open() нужно передать только имя файла.
26

27.

Произвольный
доступ
Второй необязательный параметр - это режим доступа, который может быть:
"с" (используется по умолчанию) - открытие файла на чтение или запись,
если файл не существует, он будет создан.
"п" - создание нового файла для чтения и записи, если файл существует,
он будет перезаписан.
"г" - доступ только чтение, если файл не существует, вы получите
сообщение об ошибке.
"w" - доступ только запись, если файл не существует, сообщение об
ошибке вам гарантировано.
27

28.

Произвольный
доступ
По функциональности полка ничем не отличается от словаря, и вы можете
работать с этой переменной, как с обычным словарем. Вот как можно
поместить данные "на полку":
28

29.

Произвольный
доступ
Теперь откроем файл полки и прочитаем просто список фамилий:
import shelve
…..
# Запись данных

# Чтение данных
with shelve.open("names_shelf") as data:
fnames = data["first"]
lnames = data["last"]
print(fnames)
print(lnames)
Вывод программы будет таким:
29

30.

ТЕСТ 2
30

31.

ЗАДАНИЕ 2
31

32.

Самостоятельная
работа
Задание
Измените код, чтобы добавить еще одно имя и фамилию, а затем сохраните
изменения
32

33.

Самостоятельная
работа
Задание
Создайте файл с сохранением любимых игр или фильмов
33

34.

Самостоятельная
работа
Задание
Напишите код для чтения этого файла и вывода данных на экран
34

35.

Самостоятельная
работа
Задание
спользуя shelve, сохраните словарь с парами ”имя - возраст” и введите
возраст одного из учеников
35

36.

ДО ВСТРЕЧИ!
36
English     Русский Rules