πŸ₯’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ pickle Π² Python? Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pickle для сСриализации Π΄Π°Π½Π½Ρ‹Ρ… Π² Python

Pickle - это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚) ΠΈ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ (Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°) Π΄Π°Π½Π½Ρ‹Π΅.

Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pickle:

import pickle

# БСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚
data = {'name': 'John', 'age': 25}
serialized_data = pickle.dumps(data)

# Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСриализованных Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»
with open('data.pickle', 'wb') as file:
    file.write(serialized_data)

# ДСсСриализация Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
with open('data.pickle', 'rb') as file:
    deserialized_data = pickle.load(file)

print(deserialized_data)  # Π’Ρ‹Π²ΠΎΠ΄: {'name': 'John', 'age': 25}
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ `pickle` Π² Python?

Π’ Python ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `pickle` прСдоставляСт инструмСнты для сСриализации (прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python Π² Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) ΠΈ дСсСриализации (восстановлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ). Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ сохранСнии состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ.

БСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `pickle`

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с использованиСм `pickle`, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ `pickle.dump(obj, file)`, Π³Π΄Π΅ `obj` - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π° `file` - Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сСриализованныС Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


import pickle

data = {'name': 'John', 'age': 25}
with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сохраняСм ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² Ρ„Π°ΠΉΠ» `data.pickle` с использованиСм `pickle.dump()`. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ `data` Π±Ρ‹Π» сСриализован ΠΈ сохранСн Π² Ρ„Π°ΠΉΠ»Π΅.

ДСсСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `pickle`

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ (Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с использованиСм `pickle`, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ `pickle.load(file)`, Π³Π΄Π΅ `file` - Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сСриализованныС Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


import pickle

with open('data.pickle', 'rb') as f:
    data = pickle.load(f)
    print(data)
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ сСриализованныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `data.pickle` с использованиСм `pickle.load()` ΠΈ сохраняСм ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ `data`. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ `data`, ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ сСриализациСй.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ `pickle`

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `pickle` ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для сСриализации ΠΈ дСсСриализации Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° встроСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Python, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ списки, словари, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ простыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Однако ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с сСриализациСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², содСрТащих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΊΠΈ выполнСния ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ дСсСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сСриализованы Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях Python, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° совмСстимости.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ `pickle` Π² Python. ΠœΠΎΠ΄ΡƒΠ»ΡŒ `pickle` прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ инструмСнты для сСриализации ΠΈ дСсСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python. ΠœΡ‹ рассмотрСли ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования `pickle.dump()` ΠΈ `pickle.load()`, Π° Ρ‚Π°ΠΊΠΆΠ΅ обсудили особСнности этого модуля.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

БСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pickle (Уязвимости Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ)

Python 3 #24: Ρ„Π°ΠΉΠ»Ρ‹ - Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись: open, read, write, seek, readline, dump, load, pickle

WHAT Is "Pickle" In Python?! (EXTREMELY Useful!)

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”ΈΠšΠ°ΠΊ вывСсти с Π½ΠΎΠ²ΠΎΠΉ строки Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простой способ

πŸ” Как ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ мноТСства Π² Python: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Π“Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ, зная Python? Бписок мСст, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ программирования Π½Π° Python

πŸ₯’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ pickle Π² Python? Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pickle для сСриализации Π΄Π°Π½Π½Ρ‹Ρ… Π² Python

Как ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ float Π΄ΠΎ сотых Π² Python: совСты ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹!

πŸ”— Как ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Java ΠΈ Python: простой способ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° языка для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Python для увСличСния эффСктивности программирования?