Постоянство Python

Введение

Примеры

  • 3

    Постоянство 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 ()
  • 1

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

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

     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' 

Синтаксис

Параметры

Примечания