Python

Підручник з Python Pickle

Підручник з Python Pickle

Розробники Python хочуть зберегти об'єкти даних, такі як списки, словники, кортежі та класи у файл. У цій ситуації в моду вступає модуль розсолу Python.

Pickle - це вбудований модуль Python, який використовується для серіалізації та десеріалізації структури об’єкта Python. Серіалізація - це процес перетворення об’єкта Python у байтовий потік (0 та 1). Він також відомий як маринування. Метою процесу травлення є збереження об’єкта Python на диску у вигляді байтового потоку. Маринований об'єкт Python можна перетворити назад в об'єкт Python, і цей процес відомий як депікалізація або десеріалізація.

Протруювання Python корисно, коли нам потрібно зберегти стан об’єкта Python і виконати завдання аналізу даних. Наприклад, коли ми працюємо з алгоритмами глибокого навчання, і ми хочемо використовувати його пізніше. У такому стані ми можемо зберігати його на диску для подальшого використання. Однак маринування не є хорошим варіантом, коли ми працюємо з різними мовами програмування. Маринований об'єкт не можна розпакувати на будь-якій іншій мові програмування, оскільки він не має міжмовної підтримки. Об'єкт, замаринований у Python, також може бути знятий лише в Python. Те саме стосується різних версій Python; об'єкт, замаринований у певній версії Python, може не бути належним чином розпакований в іншій версії. Щоб виконати процес маринування та депікалізації, спочатку нам потрібно імпортувати модуль маринування у наш скрипт Python.

У цій статті ми навчимось використовувати приклад модуля розсолу Python для маринування та депікації.

Приклади маринування Python

Давайте подивимося кілька прикладів, щоб зрозуміти процес маринування Python. Перш ніж виконувати операцію травлення, нам потрібно відкрити файл у режимі письма. Файл повинен бути відкритий у двійковому режимі, оскільки замаринований об'єкт зберігається в байтовому потоці. Дамп () - це функція модуля розсолу, який використовується для створення розсолу. Для цього потрібно взяти два аргументи, тобто.e., об'єкт Python, який потрібно замаринувати, і файл, в якому буде збережено маринований об'єкт.

Приклад 1: Соліть список

У наведеному прикладі ми створили список номерів і замаринували його за допомогою засолу.функція dump ().

# імпорт модуля розсолу
імпортний соління
#declaring список номерів
num_list = [1,2,3,4,5,6]
# вибирати список і зберігати у файлі
listfile = open ('listPickle', 'wb')
соління.дамп (num_list, listfile)
список файлів.закрити ()
print ("Маринування списку створено успішно.")

Вихідні дані

Результат показує, що список успішно замариновано.

Приклад 2: Виберіть словник

Тепер давайте замаринуємо об’єкт словника Python. Студентський словник створюється та маринується за допомогою засолу.функція dump ().

# імпорт модуля розсолу
імпортний соління
# декларування студентського словника
std_dict = 'name': 'John', 'age': 22, 'class': 'BS'
# вибирати словник та зберігати у файлі
dictfile = open ('dictPickle', 'wb')
соління.дамп (std_dict, dictfile)
dictfile.закрити ()
print ("Словник успішно замаринований.")

Вихідні дані

Результат показує, що словник успішно замаринований.

Приклад 3: Соління кортежу

Тепер давайте замаринуємо об’єкт кортежу Python. Кортежний об'єкт створюється та маринується за допомогою засолу.функція dump ().

# імпорт модуля розсолу
імпортний соління
#declaring кортеж
my_tuple = ((1,1), (2,2), (3,3), (4,4))
# вибирати словник та зберігати у файлі
tuplefile = відкритий ('tuplePickle', 'wb')
соління.дамп (my_tuple, tuplefile)
кортежний файл.закрити ()
print ("Кортеж успішно замаринований.")

Вихідні дані

Результат показує, що об'єкт кортежу успішно замаринований.

Гаразд! Це все стосувалося маринування різних об’єктів Python.

Приклади вибору Python

Тепер давайте подивимося кілька прикладів для процесу вилучення Python. Ми розпакуємо всі об’єкти Python, які ми маринували у попередніх прикладах. У процесі зняття файлів замаринований файл відкривається в режимі читання. Соління.Функція load () використовується для видалення об'єкта Python. Об'єкт файлу передається як аргумент засолу.функція load ().

Приклад 1: Зніміть список

Маринований об'єкт списку видаляється та призначається новому об'єкту списку.

# імпорт модуля розсолу
імпортний соління
#opening the listPickle файл у настрої читання
pickle_in = open ('listPickle', 'rb')
#unpickling список і присвоєння об'єкту списку
num_list = соління.навантаження (pickle_in)
друк (num_list)

Вихідні дані

Приклад 2: Виберіть словник

Маринований об’єкт словника студента не вибирається та призначається новому об’єкту словника.

# імпорт модуля розсолу
імпортний соління
# відкриття файлу dictPickle у настрої читання
pickle_in = відкритий ('dictPickle', 'rb')
# unpickling dict і присвоєння об’єкту словника
std_dict = маринувати.навантаження (pickle_in)
друк (std_dict)

Вихідні дані

Приклад 3: Вилучіть вивід кортежу

Маринований об'єкт кортежу видаляється та призначається новому об'єкту кортежу.

# імпорт модуля розсолу
імпортний соління
# відкриття файлу tuplePickle у режимі читання
pickle_in = відкритий ('tuplePickle', 'rb')
# unpickling кортеж і присвоєння об'єкту словника
std_dict = маринувати.навантаження (pickle_in)
друк (std_dict)

Вихідні дані

 Висновок

Pickle - це вбудований модуль Python, який використовується для виконання операцій серіалізації та десеріалізації. Серіалізація та десеріалізація також відомі як травлення та депікалізація відповідно. За допомогою засолу ми можемо зберегти об’єкт Python у вигляді байтового потоку, а потім отримати його. Процес розпакування стосується перетворення замаринованого об'єкта в об'єкт Python. У цій статті на прикладах пояснюється процес маринування та депікації.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...
Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...