Exemplo de Python Pickle

Neste tutorial, estaremos discutindo sobre o Exemplo de Pickle em Python. Em nosso tutorial anterior, discutimos sobre Multiprocessamento em Python.

Pickle em Python

O Pickle em Python é usado para serializar e desserializar uma estrutura de objeto Python. Qualquer objeto em Python pode ser pickled para que ele possa ser salvo no disco. Primeiro, o Pickle do Python serializa o objeto e então converte o objeto em um fluxo de caracteres para que este fluxo de caracteres contenha todas as informações necessárias para reconstruir o objeto em outro script Python. Note que o módulo pickle não é seguro contra dados errôneos ou maliciosamente construídos, de acordo com a documentação. Portanto, nunca desserialize dados recebidos de uma fonte não confiável ou não autenticada.

Dump de Pickle em Python

Nesta seção, vamos aprender como armazenar dados usando o Python pickle. Para fazer isso, primeiro temos que importar o módulo pickle. Em seguida, use a função pickle.dump() para armazenar os dados do objeto no arquivo. A função pickle.dump() recebe 3 argumentos. O primeiro argumento é o objeto que você deseja armazenar. O segundo argumento é o objeto de arquivo que você obtém ao abrir o arquivo desejado no modo write-binary (wb). E o terceiro argumento é o argumento de chave-valor. Este argumento define o protocolo. Existem dois tipos de protocolo – pickle.HIGHEST_PROTOCOL e pickle.DEFAULT_PROTOCOL. Veja o código de exemplo para saber como armazenar dados usando pickle.

import pickle

# obter entrada do usuário para a quantidade de dados
number_of_data = int(input('Enter the number of data : '))
data = []

# obter entrada dos dados
for i in range(number_of_data):
    raw = input('Enter data '+str(i)+' : ')
    data.append(raw)

# abrir um arquivo onde você deseja armazenar os dados
file = open('important', 'wb')

# despejar informações para esse arquivo
pickle.dump(data, file)

# fechar o arquivo
file.close()

O programa a seguir solicitará que você insira alguma entrada. No meu caso, foi assim.

Carregar Python Pickle

Para recuperar dados em formato pickle, os passos são bastante simples. Você precisa usar a função pickle.load() para fazer isso. O argumento principal da função de carga do pickle é o objeto de arquivo que você obtém ao abrir o arquivo no modo de leitura binária (rb). Simples! Não é? Vamos escrever o código para recuperar os dados que empacotamos usando o código de despejo do pickle. Veja o seguinte código para entender.

import pickle

# Abrir um arquivo onde você armazenou os dados empacotados
file = open('important', 'rb')

# Despejar informações nesse arquivo
data = pickle.load(file)

# Fechar o arquivo
file.close()

print('Showing the pickled data:')

cnt = 0
for item in data:
    print('The data ', cnt, ' is : ', item)
    cnt += 1

A saída será a seguinte:

Showing the pickled data:
The data  0  is :  123
The data  1  is :  abc
The data  2  is :  !@#$

Exemplo de Pickle do Python

I made a short video showing execution of python pickle example programs – first to store data into file and then to load and print it. As you can see that the file created by python pickle dump is a binary file and shows garbage characters in the text editor.

Notas Importantes sobre Pickle do Python

Alguns pontos importantes sobre o módulo pickle do Python são:

  1. O protocolo pickle é específico do Python – não é garantido que seja compatível entre linguagens. Isso significa que você provavelmente não pode transferir as informações para torná-las úteis em outras linguagens de programação.
  2. Também não há garantia de compatibilidade entre diferentes versões do Python porque nem toda estrutura de dados do Python pode ser serializada pelo módulo.
  3. A versão mais recente do protocolo pickle é usada por padrão, a menos que você a mude manualmente.
  4. Por último, mas não menos importante, o módulo pickle não é seguro contra dados erroneamente construídos ou maliciosos, de acordo com a documentação.

Então, isso é tudo sobre o exemplo de pickle em Python. Espero que você entenda bem. Para qualquer dúvida adicional, por favor, use a seção de comentários. 🙂 Referência: Documentação Oficial

Source:
https://www.digitalocean.com/community/tutorials/python-pickle-example