Python Language
Стойкость к Python
Поиск…
Синтаксис
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']}
Следующие типы можно мариновать
- Нет, True и False
- целые числа, числа с плавающей запятой, комплексные числа
- строки, байты, bytearrays
- кортежи, списки, наборы и словари, содержащие только сортируемые объекты
- функции, определенные на верхнем уровне модуля (с использованием def, а не лямбда)
- встроенные функции, определенные на верхнем уровне модуля
- классы, которые определены на верхнем уровне модуля
- экземпляры таких классов, чей 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