Características do Pickle:
- É projetado principalmente para uso com script Python.
- É usado para salvar os objetos Python entre os processos.
- Ele rastreia todos os objetos serializados e o objeto que é serializado antes não será serializado novamente.
- Ele pode salvar e restaurar a instância da classe de forma transparente.
- Não é seguro usar. Portanto, não é melhor retirar dados de uma fonte desconhecida.
dump () para serialização:
A função dump () é usada para converter os dados do objeto em um fluxo de caracteres antes de salvar em um arquivo. Esta função pode receber três argumentos. Os primeiros dois argumentos são obrigatórios e o último argumento é opcional. O primeiro argumento leva um objeto de dados que precisa serializar. O segundo argumento pega o objeto manipulador de arquivo desse arquivo onde os dados pckled serão armazenados. O último argumento leva o nome do protocolo.
Sintaxe:
despejo (data_object, file_object, [protocol])load () para desserialização:
A função load () é usada para converter dados de fluxo de caracteres do arquivo em um objeto Python. Esta função contém apenas um argumento e o objeto manipulador de arquivo do arquivo passa como o valor do argumento de onde os dados serão recuperados.
Sintaxe:
carregar (objeto_arquivo)Escolha um objeto simples para armazenar em um arquivo
Crie um arquivo chamado pickle1.py com o seguinte script python. No script a seguir, um objeto de dados denominado dataObject é declarado para armazenar cinco nomes de idiomas, iterando o loop for. Em seguida, o método open () é usado para atribuir um manipulador de arquivos para a criação de um arquivo binário denominado línguas. jogar fora() função é usada aqui para serializar os dados de dataObject e armazene-o no línguas Arquivo. Se a serialização for feita corretamente, uma mensagem, "Dados são serializados" será impressa.
# Importe o módulo pickleimportar picles
# Declare o objeto para armazenar dados
dataObject = []
# Repita o loop for 5 vezes e pegue os nomes dos idiomas
para n no intervalo (5):
raw = input ('Digite um nome de idioma:')
dataObject.anexar (bruto)
# Abra um arquivo para gravar dados
file_handler = open ('idiomas', 'wb')
# Despeja os dados do objeto no arquivo
salmoura.dump (dataObject, file_handler)
# feche o gerenciador de arquivos para liberar os recursos
file_handler.perto()
# Imprimir mensagem
imprimir ('Os dados são serializados')
Resultado:
Depois de executar o script, ele terá cinco nomes de idiomas como entrada.
Retirar dados de um arquivo
retirar os dados é o oposto de retirar os dados. Crie um arquivo chamado pickle2.py com o seguinte script python. Aqui, abrir() método é usado para abrir o arquivo binário denominado línguas, criado no exemplo anterior. carregar() função é usada para retirar os dados do arquivo e armazená-los na variável dataObject. Próximo, para loop é usado para iterar os dados do dataObject e imprimir no terminal.
# Importe o módulo pickleimportar picles
# Abra um gerenciador de arquivos para ler um arquivo de onde os dados serão carregados
file_handler = open ('idiomas', 'rb')
# Carregue os dados do arquivo após a desserialização
dataObject = pickle.carregar (file_handler)
# Feche o gerenciador de arquivos
file_handler.perto()
# Imprimir mensagem
imprimir ('Dados após desserialização')
# Itere o loop para imprimir os dados após a desserialização
para val em dataObject:
print ('O valor dos dados:', val)
Resultado:
A seguinte saída aparecerá após a execução do script.
Selecione um objeto de classe em um arquivo
Como um objeto de classe pode ser conservado é mostrado no exemplo a seguir. Crie um arquivo chamado pickle3.py com o seguinte script. Aqui, Empregado classe é declarada para atribuir três valores de dados de um funcionário. Em seguida, um objeto manipulador de arquivo denominado fileHandler é criado para abrir um arquivo para escrita. Depois de inicializar o objeto de classe, os dados são serializados usando jogar fora() função e armazenado no arquivo chamado EmployeeData. Se o arquivo for criado corretamente, a mensagem, “Os dados são serializados” irá imprimir.
# Módulo de importação de pickleimportar picles
# Declare a classe de funcionário para armazenar o valor
classe Funcionário:
def __init __ (self, name, email, post):
auto.nome = nome
auto.email = email
auto.post = post
#Create employee object
empObject = Employee ('Farheen', '[email protected]', 'Manager')
# Abrir arquivo para armazenar dados
fileHandler = open ('employeeData', 'wb')
# Salve os dados no arquivo
salmoura.dump (empObject, fileHandler)
# Feche o arquivo
fileHandler.perto()
# Imprimir mensagem
imprimir ('Os dados são serializados')
Resultado:
A seguinte saída aparecerá após a execução do script.
Retirar dados para um objeto de classe
Uma classe com as propriedades e métodos necessários exigirá a declaração para recuperar os dados de um arquivo para um objeto de classe. Crie um arquivo chamado pickle4.py com o seguinte código. Empregado classe é definida aqui para recuperar os dados. fileObject variável é usada para abrir o arquivo, EmployeeData para ler. Próximo, carregar() função é usada para armazenar os dados no objeto de classe após a desserialização. exibição() função do Empregado classe é chamada para imprimir os valores de dados do objeto de classe.
# Módulo de importação de pickleimportar picles
# Declare a classe de funcionários para ler e imprimir dados de um arquivo
classe Funcionário:
def __init __ (self, name, email, post):
auto.nome = nome
auto.email = email
auto.post = post
def display (self):
imprimir ('Informações do funcionário:')
print ('Nome:', self.nome)
print ('Email:', self.o email)
print ('Post:', self.publicar)
# Abra o arquivo para leitura
fileObject = open ('employeeData', 'rb')
# Retire os dados
funcionário = picles.carregar (fileObject)
# Fechar arquivo
fileObject.perto()
#print the dataframe
empregado.exibição()
Resultado:
A seguinte saída aparecerá após a execução do script.
Conclusão
O módulo Pickle é um recurso útil do Python para serialização e desserialização de dados. Depois de concluir os exemplos mostrados neste tutorial, a transferência de dados de um script Python para outro script Python será mais fácil para qualquer pessoa.