Python Pickle Dump

Python Pickle Dump
Python Pickle é uma ferramenta que pode serializar e desserializar a estrutura de um objeto Python. A decapagem permite que qualquer objeto em python seja salvo em um disco, e a decapagem pode ser feita com qualquer objeto. Os dados serão processados ​​primeiro pelo Python Pickle e depois serão transformados em um fluxo de personagem. O objeto será convertido de tal maneira que o fluxo de personagens terá as informações necessárias para remontar o objeto em outro script python. De acordo com a documentação, deve -se notar que o módulo de picles não fornece segurança contra dados que foram deliberadamente ou inadvertidamente produzidos. Portanto, você nunca deve descompactar dados que foram obtidos de uma fonte que não pode ser confiável ou que não foi validada.

A próxima seção nos ensinará a armazenar dados usando o formato de picles de Python. Devemos primeiro importar o módulo de picles para realizar esta tarefa. Os dados do objeto podem ser salvos no arquivo implementando o picles.Método Dump ().

Sintaxe

O picles.Método Dump () aceita dois parâmetros. O objeto que você pretende salvar é enviado como o primeiro parâmetro. A segunda declaração é a entidade do diretório que você recebe depois de acessar o arquivo especificado no modo Write-Binary (WB).

Exemplo 01: Inserindo várias linhas de dados em um arquivo de picles usando a função de despejo de picles

Neste exemplo, vamos olhar para um exemplo simples em que usaremos um picles.Método Dump () para um arquivo. O primeiro passo é importar o módulo de picles no Python para usar seus métodos. Na próxima linha, um prompt de entrada é usado para pedir ao usuário que insira o número de dígitos que o usuário deseja inserir. É armazenado na variável "num". Uma lista vazia também é inicializada como "dados". Então um loop for executado para o número de tempos de dados. Em cada loop, o programa pede ao usuário que insira os dados. Esses dados são anexados à lista de "dados".

Quando todos os dados são anexados e o loop termina, um arquivo é aberto no modo Write-Binary (WB) e é armazenado na variável "arquivo". Na próxima linha, Pickle.O método dump () é implementado no arquivo fornecido com os "dados". Finalmente, o arquivo está fechado.

No terminal de saída, podemos ver as solicitações de entrada que o programa pediu ao usuário que insira. Neste exemplo, a quantidade de dados foi 2. Um era o número 12 e o outro era o número 15. Se abrirmos o arquivo, poderíamos ver que os dados estão escritos nesse arquivo.

Podemos ver três arquivos para o seguinte programa. Um é o arquivo no qual o código é escrito. O arquivo principal é onde o código é executado. O arquivo "info" é o arquivo binário criado por picles.despejo () em que despejamos os dados.

Agora, veremos como podemos recuperar os dados de picles. Para recuperar os dados de picles de volta, você deve usar o picles.Método de carga (). Ao visualizar um arquivo no modo Read-Binary (RB), o conteúdo do diretório pode ser acessado.

Como o picles.Load () também é um método do módulo de picles, precisamos importar este módulo primeiro para usá -lo. Na próxima linha, o arquivo "info" é aberto no modo RB. Então o picles.O método load () é chamado no objeto de arquivo e os dados são armazenados na variável denominada "dados". Em seguida, um loop é percorrido pelos dados para imprimir os dados no terminal de saída, conforme mostrado na captura de tela a seguir:

Exemplo 02: Inserindo várias listas de dados em um arquivo de picles usando a função de despejo de picles

Outra amostra de decapagem e dados desconhecidos é mostrada abaixo:

No código anterior, dois dicionários são criados para duas pessoas, a saber, John e Logan, com seus respectivos nomes e idade. O dicionário "List1" contém os atributos de ambas as pessoas. Em seguida. Salmoura.dump () é aplicado ao objeto de arquivo que anexa o dicionário/dicionário "List1". Finalmente, o arquivo está fechado.

No código anterior, usaremos o picles.Método de carregamento () para descompactar os dados que acabamos de consertar no arquivo "info". O arquivo é aberto no modo RB e picles.o método de carga () é aplicado ao objeto de arquivo. Os dados retornados são armazenados na variável chamada "List1". O loop for então é usado para mostrar todo o conteúdo da "Lista1" nos terminais secundários, como visto na imagem a seguir:

Exemplo 03: Inserindo várias listas de dados sem um arquivo de picles usando a função de despejo de picles e depois carregando -os no console

Agora, vejamos vários exemplos de decapagem e desconhecimento de dados sem usar um arquivo. Além disso, desta vez estaremos usando o picles.dumps () e picles.Métodos de carga (). A única diferença é que o último método cria e lê o arquivo que contém o resultado da serialização, enquanto o método Dumps () e Loads () opera em uma string em vez de um arquivo e retorna uma string.

No código anterior, dois dicionários diferentes são criados contendo os respectivos detalhes sobre John e Logan. Em seguida, um dicionário primário “List1” é criado e esses dois dicionários separados são adicionados a ele. Na próxima linha, o picles .O método dumps () é usado para despejar os dados como uma string no novo objeto, "a". Na linha seguinte, os dados despejados são despachados usando um picles.LOADS () Método e armazena os dados em uma nova variável, “entrada”. A guia Resultado apresenta os dados não pitados, como visto na imagem abaixo.

Exemplo 04: Inserção de dados em um arquivo de picles usando a estrutura da classe para transmitir dados para a função de despejo de picles

Neste exemplo, usaremos classes para entender o funcionamento dos métodos de picles e descompactação. No código a seguir, uma classe chamada "Datalist", é criada com uma função load_data (). Um número inteiro e uma string são definidos em objetos, "A" e "B", respectivamente. Fora da classe, um objeto de Datalist () é criado com o nome "Obj", que contém os dados. Em seguida, este objeto é em conserva e armazenado em uma nova variável "dados" usando picles.Método de despejos (). Para desfazer os dados, picles.O método loads () é implementado em "dados".

Finalmente, os dados retornados de Pickle.Cargas () é exibido no terminal de saída na forma do dicionário, como mostrado na captura de tela a seguir:

Exemplo 05: Inserindo uma string longa em um arquivo de picles usando a função de compactação junto com a função de despejo de picles

O próximo caso demonstrará como comprimir itens em conserva. Você pode usar o módulo BZ2 da biblioteca Python padrão para comprimir uma string em conserva usando BZIP2.

Neste código, os dados do tipo de primeira linha são inicializados e armazenados em uma variável chamada "dados". Na próxima linha, esses dados são em conserva usando um picles. dumps () ao objeto chamado "dump". Então este objeto é compactado usando o BZ2.método compact () e armazenado no objeto "dump2". Aqui, "Dump" contém os dados não compactados da string, enquanto o objeto "dump2" contém os dados compactados. Podemos provar isso encontrando o comprimento de ambos os objetos usando o comando len ().

Conclusão

Espero que, através deste tutorial, agora você entenda como usar o módulo de picles de Python para converter uma hierarquia de objetos em um fluxo de bytes que podem ser armazenados para disco ou enviado por uma rede, bem como o método de desseialização de Python. Agora você está bem equipado para persistir objetos usando o pacote de picles python.