Python pickle save to file

How to Use Python Pickle to Save Objects

Pickle can be used to serialize and deserialize objects. A seralized object can be saved and loaded from the disk. Pickling is a method to convert an object (list, dict, etc) to a file and vice versa.

The idea is to save one or more objects in one script and load them in another. You can also use it to save program or game states.

We will save and load using a binary file, as this saves disk space.

Serialize object

import pickle

exampleObj = {‘Python’:3,‘KDE’:5,‘Windows’:10}

fileObj = open(‘data.obj’, ‘wb’)
pickle.dump(exampleObj,fileObj)
fileObj.close()

Deserialize object

Now that the object is saved to a file, you can load it (unpickle it). In the example below we load the object from the file.

import pickle

fileObj = open(‘data.obj’, ‘rb’)
exampleObj = pickle.load(fileObj)
fileObj.close()
print(exampleObj)

This will show you the previously saved object:

python pickle

Exercise

Enumerate Explained (With Examples)

Источник

Модуль pickle

Python 3 логотип

Модуль pickle реализует мощный алгоритм сериализации и десериализации объектов Python. «Pickling» — процесс преобразования объекта Python в поток байтов, а «unpickling» — обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект. Так как поток байтов легко можно записать в файл, модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python.

Не загружайте с помощью модуля pickle файлы из ненадёжных источников. Это может привести к необратимым последствиям.

Модуль pickle предоставляет следующие функции для удобства сохранения/загрузки объектов:

pickle.dump(obj, file, protocol=None, *, fix_imports=True) — записывает сериализованный объект в файл. Дополнительный аргумент protocol указывает используемый протокол. По умолчанию равен 3 и именно он рекомендован для использования в Python 3 (несмотря на то, что в Python 3.4 добавили протокол версии 4 с некоторыми оптимизациями). В любом случае, записывать и загружать надо с одним и тем же протоколом.

Читайте также:  .

pickle.dumps(obj, protocol=None, *, fix_imports=True) — возвращает сериализованный объект. Впоследствии вы его можете использовать как угодно.

pickle.load(file, *, fix_imports=True, encoding=»ASCII», errors=»strict») — загружает объект из файла.

pickle.loads(bytes_object, *, fix_imports=True, encoding=»ASCII», errors=»strict») — загружает объект из потока байт.

Модуль pickle также определяет несколько исключений:

  • pickle.PickleError
    • pickle.PicklingError — случились проблемы с сериализацией объекта.
    • pickle.UnpicklingError — случились проблемы с десериализацией объекта.

    Этих функций вполне достаточно для сохранения и загрузки встроенных типов данных.

       , 'a': [1, 2.0, 3, (4+6j)], 'b': ('character string', b'byte string')>

    Для вставки кода на Python в комментарий заключайте его в теги

    Источник

    Python Save Dictionary To File

    In this lesson, you’ll learn how to save a dictionary to a file in Python. Also, we’ll see how to read the same dictionary from a file.

    In this lesson, you’ll learn how to:

    • Use the pickle module to save the dictionary object to a file.
    • Save the dictionary to a text file.
    • Use the dump() method of a json module to write a dictionary in a json file.
    • Write the dictionary to a CSV file.

    Table of contents

    How to save a dictionary to file in Python

    Dictionaries are ordered collections of unique values stored in (Key-Value) pairs. The below steps show how to use the pickle module to save the dictionary to a file.

      Import pickle module The pickle module is used for serializing and de-serializing a Python object structure.

    Pickling” is the process whereby a Python object is converted into a byte stream, and “unpickling” is the inverse operation whereby a byte stream (from a binary file) is converted back into an original object.

    Example: save a dictionary to file

    Let’s see the below example of how you can use the pickle module to save a dictionary to a person_data.pkl file.

    import pickle # create a dictionary using <> person = print('Person dictionary') print(person) # save dictionary to person_data.pkl file with open('person_data.pkl', 'wb') as fp: pickle.dump(person, fp) print('dictionary saved successfully to file')
    Person dictionary dictionary saved successfully to file

    Read Dictionary from a File

    Now read the same dictionary from a file using a pickle module’s load() method.

    import pickle # Read dictionary pkl file with open('person_data.pkl', 'rb') as fp: person = pickle.load(fp) print('Person dictionary') print(person)

    Save a dictionary to a text file using the json module

    We can use the Python json module to write dictionary objects as text data into the file. This module provides methods to encode and decode data in JSON and text formats.

    We will use the following two methods of a json module.

    • The dump() method is used to write Python objects as JSON formatted data into a file.
    • Using the load() method, we can read JSON data from text, JSON, or a binary file to a dictionary object.

    Let’s see the below example of how you can use the json module to save a dictionary to a text file.

    import json # assume you have the following dictionary person = print('Person dictionary') print(person) print("Started writing dictionary to a file") with open("person.txt", "w") as fp: json.dump(person, fp) # encode dict into JSON print("Done writing dict into .txt file")
    Person dictionary Started writing dictionary to a file Done writing dict into .txt file

    Person text file

    Note: You can also use the dump() method to write a dictionary in a json file. Only you need to change the file extension to json while writing it.

    Read a dictionary from a text file.

    Now, let’s see how to read the same dictionary from the file using the load() function.

    import json # Open the file for reading with open("person.txt", "r") as fp: # Load the dictionary from the file person_dict = json.load(fp) # Print the contents of the dictionary print(person_dict)

    Save the dictionary to a CSV file

    The Python csv library provides functionality to read from and write to CSV files.

    • Use the csv.DictReader() method to read CSV files into a dictionary.
    • Use the csv.DictWriter() method to write a dictionary to a CSV file.

    Example: Save the dictionary to a CSV file.

    import csv # Dictionary to be saved person = print('Person dictionary') print(person) # Open a csv file for writing with open("person.csv", "w", newline="") as fp: # Create a writer object writer = csv.DictWriter(fp, fieldnames=person.keys()) # Write the header row writer.writeheader() # Write the data rows writer.writerow(person) print('Done writing dict to a csv file')
    Person dictionary Done writing dict to a csv file

    Person csv file

    Example: Read a dictionary from a csv file

    import csv # Open the csv file for reading with open("person.csv", "r") as infile: # Create a reader object reader = csv.DictReader(infile) # Iterate through the rows for row in reader: print(row)
    OrderedDict([('name', 'Jessa'), ('country', 'USA'), ('telephone', '1178')])

    Note: This will read the contents of the person.csv file and create a dictionary for each row in the file. You can then iterate through the rows and access the values in the dictionary using the column names as keys.

    Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

    About Vishal

    I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter

    Python Exercises and Quizzes

    Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

    • 15+ Topic-specific Exercises and Quizzes
    • Each Exercise contains 10 questions
    • Each Quiz contains 12-15 MCQ

    Источник

Оцените статью