Похожие презентации:
Урок 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.
ТЕСТ 118
19.
ЗАДАНИЕ 119
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.
ТЕСТ 230
31.
ЗАДАНИЕ 231
32.
Самостоятельнаяработа
Задание
Измените код, чтобы добавить еще одно имя и фамилию, а затем сохраните
изменения
32
33.
Самостоятельнаяработа
Задание
Создайте файл с сохранением любимых игр или фильмов
33
34.
Самостоятельнаяработа
Задание
Напишите код для чтения этого файла и вывода данных на экран
34
35.
Самостоятельнаяработа
Задание
спользуя shelve, сохраните словарь с парами ”имя - возраст” и введите
возраст одного из учеников
35
36.
ДО ВСТРЕЧИ!36
Программирование