Lendo e Escrevendo Arquivos Pickle em Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

A manipulação de dados é uma tarefa comum em programação, e em Python, uma das formas mais eficientes de salvar e carregar objetos complexos é através do uso de arquivos Pickle. Neste tutorial, vamos explorar como ler e escrever arquivos Pickle, uma habilidade essencial para qualquer desenvolvedor Python.

O que é Pickle?

Pickle é um módulo que permite serializar e deserializar objetos Python. Serializar um objeto significa convertê-lo em um fluxo de bytes que pode ser salvo em um arquivo ou transmitido pela rede. Deserializar é o processo inverso, onde a partir do fluxo de bytes, reconstruímos o objeto original.

Por que usar Pickle?

Utilizar Pickle é extremamente útil quando você tem objetos complexos, como instâncias de classes, listas, dicionários, que deseja salvar para uso posterior. Por exemplo, se você treinou um modelo de Machine Learning e deseja salvá-lo para fazer previsões futuras, Pickle é uma ótima opção.

Como Salvar Objetos com Pickle

Para salvar objetos com Pickle, você precisa importar o módulo e utilizar a função dump. Veja um exemplo de como salvar uma lista e um dicionário:

import pickle

minha_lista = [0, 1, 2]
meu_dict = {'a': 1, 'b': 2, 'c': 3}

with open('minha_lista.pickle', 'wb') as f:
    pickle.dump(minha_lista, f)

with open('meu_dict.pickle', 'wb') as f:
    pickle.dump(meu_dict, f)

Note que usamos o modo 'wb' para escrever em formato binário.

Como Ler Objetos Salvos com Pickle

Para ler um objeto que foi salvo com Pickle, utilizamos a função load. Veja como é simples:

import pickle

with open('minha_lista.pickle', 'rb') as f:
    minha_lista = pickle.load(f)

with open('meu_dict.pickle', 'rb') as f:
    meu_dict = pickle.load(f)

Aqui, usamos o modo 'rb' para ler o arquivo em formato binário.

Trabalhando com Objetos Complexos

Pickle também pode ser usado para serializar e deserializar objetos de classes customizadas. Veja um exemplo:

import pickle

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
    def quem_sou_eu(self):
        print(f'Eu sou {self.nome} e tenho {self.idade} anos')

obj_pessoa = Pessoa('Carlos', 31)
obj_pessoa.quem_sou_eu()

with open('obj_pessoa.pickle', 'wb') as f:
    pickle.dump(obj_pessoa, f)

Para ler o objeto de volta:

import pickle

with open('obj_pessoa.pickle', 'rb') as f:
    obj_pessoa = pickle.load(f)

obj_pessoa.quem_sou_eu()

Considerações Finais

Pickle é uma ferramenta poderosa que pode economizar muito tempo e esforço, especialmente em aplicações de Machine Learning e quando se trabalha com dados complexos. No entanto, é importante notar que arquivos Pickle podem ser inseguros se não forem manipulados corretamente, pois podem executar código arbitrário durante a deserialização. Portanto, nunca deserializar dados Pickle que venham de fontes não confiáveis.

Agora que você aprendeu a ler e escrever arquivos Pickle, você pode aplicar esse conhecimento para tornar seus projetos Python mais eficientes e organizados. Continue explorando e praticando para aprimorar suas habilidades em Python!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: