Python Glossary English

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

pickle.load()

загрузка

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

Синтаксис

obj = pickle.load(file, *, fix_imports=True, encoding='ASCII', errors='strict', buffers=None)

Опасность не теоретическая: pickle при загрузке вызывает функции, записанные в потоке, и подготовленный файл выполнит команду в системе ещё до того, как вы увидите объект. Поэтому load годится только для файлов, которые записала ваша же программа; для данных извне — json. Один вызов читает один объект: если dump вызывали несколько раз, читайте в цикле до EOFError. Файл открывают в 'rb'.

Примеры

import pickle
with open('log.pkl', 'wb') as f:
    for n in range(3):
        pickle.dump({'n': n}, f)
records = []
with open('log.pkl', 'rb') as f:
    while True:
        try:
            records.append(pickle.load(f))
        except EOFError:
            break
print(records)  # → [{'n': 0}, {'n': 1}, {'n': 2}]

См. также

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

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