Постоянство 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. Нет, правда и ложь
  2. целые числа, числа с плавающей точкой, комплексные числа
  3. строки, байты, байтовые массивы
  4. кортежи, списки, наборы и словари, содержащие только выбираемые объекты
  5. функции, определенные на верхнем уровне модуля (используя def, а не лямбду)
  6. встроенные функции, определенные на верхнем уровне модуля
  7. классы, которые определены на верхнем уровне модуля
  8. экземпляры таких классов, ДИКТ или результат вызова GetState ()