Python Glossary English

все Python 3pickleфункция

pickle.dump()

сериализация

Записывает объект в открытый двоичный файл в формате pickle — чтобы сохранить состояние программы между запусками.

Синтаксис

pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None)

Файл открывают в 'wb': в текстовом режиме будет TypeError. Сохраняется не код, а ссылка на него — для экземпляров путь модуль.Класс и атрибуты, поэтому лямбды и функции, объявленные внутри других функций, сохранить нельзя, а при загрузке нужен тот же класс по тому же пути. Протокол по умолчанию — 4, а с Python 3.14 — 5; для файла, который прочтут старые версии, задайте protocol явно. Несколько dump в один файл — столько же последовательных load.

Примеры

import pickle
state = {'level': 3, 'items': ['меч', 'щит']}
with open('save.pkl', 'wb') as f:
    pickle.dump(state, f)
with open('save.pkl', 'rb') as f:
    print(pickle.load(f))  # → {'level': 3, 'items': ['меч', 'щит']}
import pickle
with open('save.pkl', 'w') as f:
    try:
        pickle.dump(1, f)
    except TypeError as e:
        print(e)  # → write() argument must be str, not bytes

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности