Python

Як замаринувати предмети в Python

Як замаринувати предмети в Python
Будь-які дані можуть бути серіалізовані та десеріалізовані в Python за допомогою модулів JSON та Pickle. Перш ніж зберігати будь-які дані у файлі, об’єкти Python серіалізуються за допомогою модуля pickle. За допомогою цього модуля об’єкти Python перетворюються в потоки символів. Коли користувач хоче отримати дані файлу для використання іншого скрипта python, дані файлу десеріалізуються модулем pickle. Особливості модуля pickle та те, як цей модуль може бути використаний у сценарії python для серіалізації та десеріалізації, описані в цьому посібнику.

Особливості соління:

dump () для серіалізації:

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

Синтаксис:

дамп (data_object, file_object, [protocol])

load () для десеріалізації:

Функція load () використовується для перетворення даних потоку символів з файлу в об'єкт Python. Ця функція містить лише один аргумент, і об'єкт обробника файлу передається як значення аргументу, звідки будуть отримані дані.

Синтаксис:

завантажити (файл_об'єкта)

Маринуйте простий об’єкт для зберігання у файлі

Створіть файл з іменем соління1.py з наступним сценарієм python.  У наведеному нижче сценарії об'єкт даних з іменем dataObject оголошено для зберігання п’яти назв мов шляхом ітерації циклу for. Далі метод open () використовується для призначення обробника файлу для створення двійкового файлу з іменем мови. звалити () тут використовується функція для серіалізації даних dataObject і зберігайте його в мови файл.  Якщо серіалізація буде виконана належним чином, надрукується повідомлення "Дані серіалізуються".

# Імпортуйте модуль розсолу
імпортний соління
# Оголосіть об’єкт для зберігання даних
dataObject = []
# 5 разів повторіть цикл for і візьміть імена мов
для n в діапазоні (5):
raw = input ('Введіть назву мови:')
dataObject.додати (сирий)
# Відкрийте файл для запису даних
file_handler = відкрити ('мови', 'wb')
# Звантажити дані об’єкта у файл
соління.дамп (dataObject, file_handler)
# закрийте обробник файлів, щоб звільнити ресурси
file_handler.закрити ()
# Роздрукувати повідомлення
print ('Дані серіалізовані')

Вихід:

Після запуску сценарію для введення буде використано п’ять назв мов.

Видаліть дані з файлу

зняття даних - протилежність засолу даних. Створіть файл з іменем соління2.py з наступним сценарієм python. Ось, відчинено() метод використовується для відкриття двійкового файлу з іменем мови, створений у попередньому прикладі. навантаження () Функція використовується для видалення даних із файлу та збереження їх у змінній dataObject. Далі, для цикл використовується для ітерації даних із dataObject і надрукуйте в терміналі.

# Імпортуйте модуль розсолу
імпортний соління
# Відкрийте обробник файлів для читання файлу, звідки будуть завантажуватися дані
file_handler = відкрити ('мови', 'rb')
# Завантажте дані з файлу після десеріалізації
dataObject = маринувати.завантажити (файл_обробник)
# Закрийте обробник файлів
file_handler.закрити ()
# Роздрукувати повідомлення
print ('Дані після десериалізації')
# Повторіть цикл для друку даних після десериалізації
для val в dataObject:
print ('Значення даних:', val)

Вихід:

Наступний результат з’явиться після запуску сценарію.

Маринуйте об’єкт класу у файл

Як можна маринувати об’єкт класу, показано в наступному прикладі. Створіть файл з іменем соління3.py з наступним сценарієм. Ось, Співробітник клас оголошено призначити три значення даних працівника. Далі об’єкт обробника файлу з іменем fileHandler створюється для відкриття файлу для запису. Після ініціалізації об'єкта класу дані серіалізуються за допомогою звалити () функція і зберігається у файлі з іменем Дані працівника. Якщо файл буде створено належним чином, повідомлення, "Дані серіалізовані" надрукує.

# Імпортувати модуль розсолу
імпортний соління
# Оголосіть клас працівника для зберігання значення
клас Співробітник:
def __init __ (власне, ім'я, електронна пошта, повідомлення):
себе.name = ім'я
себе.email = електронна пошта
себе.допис = допис
 
# Створити об'єкт працівника
empObject = Співробітник ('Farheen', '[email protected]', 'Manager')
# Відкрити файл для зберігання даних
fileHandler = відкрити ('workerData', 'wb')
# Збережіть дані у файл
соління.дамп (empObject, fileHandler)
# Закрийте файл
fileHandler.закрити ()
# Роздрукувати повідомлення
print ('Дані серіалізовані')

Вихід:

Наступний результат з’явиться після запуску сценарію.

Видаліть дані до об’єкта класу

Клас з необхідними властивостями та методами вимагатиме декларування для отримання даних із файлу в об’єкт класу. Створіть файл з іменем соління4.py з наступним кодом. Співробітник тут визначено клас для отримання даних. fileObject змінна використовується для відкриття файлу, Дані працівника для читання. Далі, навантаження () Функція використовується для зберігання даних в об'єкті класу після десериалізації. дисплей () функція Співробітник class викликається для друку значень даних об'єкта класу.

# Імпортувати модуль розсолу
імпортний соління
# Оголосіть клас працівника для читання та друку даних із файлу
клас Співробітник:
def __init __ (власне, ім'я, електронна пошта, повідомлення):
себе.name = ім'я
себе.email = електронна пошта
себе.допис = допис
показ дисплея (самостійно):
print ('Інформація про працівника:')
print ('Ім'я:', самостійно.ім'я)
print ('Електронна адреса:', самостійно.електронна пошта)
print ('Публікація:', самостійно.пост)
 
# Відкрийте файл для читання
fileObject = open ('workerData', 'rb')
# Видаліть дані
працівник = соління.завантажити (fileObject)
# Закрити файл
fileObject.закрити ()
#print фрейм даних
працівник.дисплей ()

Вихід:

Наступний результат з’явиться після запуску сценарію.

Висновок

Модуль Pickle - корисна функція python для серіалізації та десериалізації даних. Після завершення прикладів, показаних у цьому посібнику, перенесення даних з одного сценарію python на інший скрипт python буде простішим для будь-кого.

Як показати накладання екранного меню в повноекранному додатку та іграх для Linux
Гра у повноекранні ігри або використання додатків у повноекранному повноекранному режимі може відключити від відповідної системної інформації, видимої...
Топ 5 карт для захоплення ігор
Ми всі бачили і любили потокові ігри на YouTube. PewDiePie, Jakesepticye та Markiplier - лише деякі з найкращих геймерів, які заробили мільйони, заван...
Як розробити гру на Linux
Десять років тому не так багато користувачів Linux передбачали, що їх улюблена операційна система колись стане популярною ігровою платформою для комер...