все 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Сообщить о неточности