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:
- 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.
- 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.
- A versão mais recente do protocolo pickle é usada por padrão, a menos que você a mude manualmente.
- 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