Como usar Pickle para salvar objetos em Python

click fraud protection

Pickle, que faz parte da biblioteca Python por padrão, é um módulo importante sempre que você precisar de persistência entre as sessões do usuário. Como módulo, pickle fornece o salvamento de objetos Python entre processos.

Se você está programando para um base de dados, jogo, fórum ou algum outro aplicativo que precise salvar informações entre as sessões, o pickle é útil para salvar identificadores e configurações. O módulo pickle pode armazenar itens como tipos de dados, como booleanos, strings e matrizes de bytes, listas, dicionários, funções e muito mais.

Nota: O conceito de decapagem também é conhecido como serialização, empacotamento e achatamento. No entanto, o ponto é sempre o mesmo - salvar um objeto em um arquivo para recuperação posterior. A decapagem realiza isso escrevendo o objeto como um longo fluxo de bytes.

Código de exemplo de pickle em Python

Para gravar um objeto em um arquivo, use um código na seguinte sintaxe:

picles de importação 
object = Object ()
filehandler = open (nome do arquivo, 'w')
pickle.dump (objeto, manipulador de arquivos)
instagram viewer

Veja como é um exemplo do mundo real:

picles de importação 
importar matemática
object_pi = math.pi
file_pi = open ('filename_pi.obj', 'w')
pickle.dump (objeto_pi, arquivo_pi)

Este trecho grava o conteúdo de object_pi para o arquivo manipulador file_pi, que por sua vez está vinculado ao arquivo filename_pi.obj no diretório de execução.

Para restaurar o valor do objeto na memória, carregue o objeto no arquivo Supondo que o pickle ainda não tenha sido importado para uso, comece importando-o:

picles de importação 
filehandler = open (nome do arquivo, 'r')
objeto = pickle.load (manipulador de arquivo)

O código a seguir restaura o valor de pi:

picles de importação 
file_pi2 = aberto ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)

O objeto está pronto para uso novamente, desta vez como object_pi2. Obviamente, você pode reutilizar os nomes originais, se preferir. Este exemplo usa nomes distintos para maior clareza.

Coisas para lembrar sobre Pickle

Lembre-se do seguinte ao usar o módulo pickle:

  • O protocolo pickle é específico do Python - não é garantido que seja compatível com vários idiomas. Você provavelmente não pode transferir as informações para torná-las úteis em Perl, PHP, Java ou outras linguagens.
  • Também não há garantia de compatibilidade entre diferentes versões do Python. IA incompatibilidade existe porque nem toda estrutura de dados Python pode ser serializada pelo módulo.
  • Por padrão, a versão mais recente do protocolo pickle é usada. Continua assim, a menos que você o altere manualmente.

Gorjeta: Descubra também como usar shelve para salvar objetos em Python para outro método de manutenção da continuidade do objeto.

instagram story viewer