Поиск…


Синтаксис

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

  • pickle.load (файл, *, fix_imports = True, encoding = "ASCII", errors = "strict")

параметры

параметр подробности
OBJ маринованное представление obj в файл файла открытого файла
протокол целое число, сообщает pickler использовать данный протокол, 0 -ASCII, 1 старый двоичный формат
файл Аргумент файла должен иметь метод write () wb для метода дампа и для загрузки метода read () rb

Стойкость к Python

Объекты, такие как числа, списки, словари, вложенные структуры и объекты экземпляра класса, хранятся в памяти вашего компьютера и теряются, как только заканчивается скрипт.

pickle хранит данные настойчиво в отдельном файле.

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

данные могут быть не такими, например,

data={'a':'some_value',
     'b':[9,4,7],
     'c':['some_str','another_str','spam','ham'],
     'd':{'key':'nested_dictionary'},
     } 

Хранить данные

import pickle
file=open('filename','wb')  #file object in binary write mode
pickle.dump(data,file)      #dump the data in the file object
file.close()                #close the file to write into the file

Загрузить данные

import pickle
file=open('filename','rb')  #file object in binary read mode
data=pickle.load(file)      #load the data back
file.close()

>>>data
{'b': [9, 4, 7], 'a': 'some_value', 'd': {'key': 'nested_dictionary'},
 'c': ['some_str', 'another_str', 'spam', 'ham']}

Следующие типы можно мариновать

  1. Нет, True и False
  2. целые числа, числа с плавающей запятой, комплексные числа
  3. строки, байты, bytearrays
  4. кортежи, списки, наборы и словари, содержащие только сортируемые объекты
  5. функции, определенные на верхнем уровне модуля (с использованием def, а не лямбда)
  6. встроенные функции, определенные на верхнем уровне модуля
  7. классы, которые определены на верхнем уровне модуля
  8. экземпляры таких классов, чей dict или результат вызова getstate ()

Функция утилиты для сохранения и загрузки

Сохранение данных в файл и из него

import pickle
def save(filename,object):
    file=open(filename,'wb')
    pickle.dump(object,file)
    file.close()

def load(filename):
    file=open(filename,'rb')
    object=pickle.load(file)
    file.close()
    return object


>>>list_object=[1,1,2,3,5,8,'a','e','i','o','u']
>>>save(list_file,list_object)
>>>new_list=load(list_file)
>>>new_list
[1, 1, 2, 3, 5, 8, 'a', 'e', 'i', 'o', 'u'


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow