Разработчики Python хотят сохранять объекты данных, такие как списки, словари, кортежи и классы, в файл. В этой ситуации в игру вступает модуль pickle Python.
Pickle - это встроенный модуль Python, который используется для сериализации и десериализации структуры объекта Python. Сериализация - это процесс преобразования объекта Python в поток байтов (0 и 1). Он также известен как маринование. Целью процесса травления является сохранение объекта Python на диске в виде байтового потока. Консервированный объект Python можно преобразовать обратно в объект Python, и этот процесс известен как распаковка или десериализация.
Обработка Python полезна, когда нам нужно сохранить состояние объекта Python и выполнить задачу анализа данных. Например, когда мы работаем с алгоритмами глубокого обучения и хотим использовать его в будущем. В этом состоянии мы можем сохранить его на диске для дальнейшего использования. Однако травление - не лучший вариант, когда мы работаем с разными языками программирования. Заквашенный объект нельзя распаковать ни на каком другом языке программирования, так как он не имеет межъязыковой поддержки. Объект, обработанный в Python, также может быть извлечен только в Python. То же самое применимо для разных версий Python; объект, который был обработан в определенной версии Python, может быть некорректно извлечен в другой версии. Чтобы выполнить процесс травления и распаковки, сначала нам нужно импортировать модуль pickle в наш скрипт Python.
В этой статье мы научимся использовать модуль рассола Python для выполнения травления и распаковки на примерах.
Примеры травления Python
Давайте посмотрим на несколько примеров, чтобы понять процесс травления Python. Перед выполнением операции травления нам необходимо открыть файл в режиме записи. Файл должен быть открыт в двоичном режиме, так как маринованный объект хранится в байтовом потоке. Dump () - это функция модуля pickle, который используется для создания рассола. Требуется два аргумента, я.е., объект Python для маринования и файл, в котором будет сохранен маринованный объект.
Пример 1. Выберите список
В данном примере мы создали список чисел и замариновали его с помощью рассола.функция dump ().
# импорт модуля рассолаимпортный рассол
# объявление списка номеров
num_list = [1,2,3,4,5,6]
# выбор списка и сохранение в файле
listfile = open ('listPickle', 'wb')
соленый огурец.дамп (num_list, listfile)
список.Закрыть()
print ("Раскрытие списка успешно создано.")
Выход
Выходные данные показывают, что список успешно замаринован.
Пример 2: выберите словарь
Теперь давайте рассмотрим объект словаря Python. Студенческий словарь создан и маринован с помощью рассола.функция dump ().
# импорт модуля рассолаимпортный рассол
# объявление студенческого словаря
std_dict = 'имя': 'Джон', 'возраст': 22, 'класс': 'BS'
# выбор словаря и сохранение в файле
dictfile = open ('dictPickle', 'wb')
соленый огурец.дамп (std_dict, dictfile)
dictfile.Закрыть()
print ("Словарь успешно маринован.")
Выход
Вывод показывает, что словарь успешно замаринован.
Пример 3: выделить кортеж
Теперь давайте рассмотрим объект кортежа Python. Объект кортежа создается и обрабатывается с помощью pickle.функция dump ().
# импорт модуля рассолаимпортный рассол
# объявление кортежа
my_tuple = ((1,1), (2,2), (3,3), (4,4))
# выбор словаря и сохранение в файле
tuplefile = open ('tuplePickle', 'wb')
соленый огурец.дамп (my_tuple, tuplefile)
кортеж.Закрыть()
print ("Кортеж успешно обработан.")
Выход
Выходные данные показывают, что объект кортежа успешно обработан.
Хорошо! Это все было о травлении различных объектов Python.
Примеры Python Unpickling
Теперь давайте посмотрим на несколько примеров процесса распаковки Python. Мы удалим все объекты Python, которые мы выбрали в предыдущих примерах. В процессе распаковки маринованный файл открывается в режиме чтения. Рассол.Функция load () используется для извлечения объекта Python. Файловый объект передается как аргумент рассолу.функция load ().
Пример 1: развернуть список
Объект маринованного списка не выделяется и назначается новому объекту списка.
# импорт модуля рассолаимпортный рассол
# открытие спискаПикл-файл в настроении чтения
pickle_in = открытый ('listPickle', 'rb')
# распаковка списка и присвоение объекту списка
num_list = рассол.загрузка (pickle_in)
печать (список_числов)
Выход
Пример 2: развернуть словарь
Выбранный объект словаря студента не выделяется и назначается новому объекту словаря.
# импорт модуля рассолаимпортный рассол
# открытие файла dictPickle в настроении чтения
pickle_in = открытый ('dictPickle', 'rb')
# распаковка словаря и назначение объекту словаря
std_dict = рассол.загрузка (pickle_in)
печать (std_dict)
Выход
Пример 3: извлечение кортежа
Выбранный объект кортежа не выделяется и назначается новому объекту кортежа.
# импорт модуля рассолаимпортный рассол
# открытие файла tuplePickle в настроении чтения
pickle_in = открытый ('tuplePickle', 'rb')
# извлечение кортежа и присвоение объекту словаря
std_dict = рассол.загрузка (pickle_in)
печать (std_dict)
Выход
Заключение
Pickle - это встроенный модуль Python, который используется для выполнения операций сериализации и десериализации. Сериализация и десериализация также известны как травление и распаковка соответственно. Посредством травления мы можем сохранить объект Python в виде байтового потока, а затем получить его. Процесс распаковки относится к преобразованию маринованного объекта в объект Python. В этой статье объясняется процесс травления и расстегивания с примерами.