Python Pickle – Perpetuar Objetos no Python
Python Pickle – Aprenda a perpetuar objetos no Python! Como salvar pedaços de códigos para usar depois sempre que precisar!
O Pickle é o módulo que já vem instalado no Python e serializa objetos: você salva uma lista, um dicionário ou até um modelo de inteligência artificial já treinado em um arquivo .pkl com pickle.dump e recupera tudo depois com pickle.load, sem precisar rodar o código pesado outra vez.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: A aula ensina a usar o módulo pickle, nativo do Python, para salvar objetos em arquivo e recuperá-los em outro código. Você sai sabendo gravar uma lista e um modelo de IA treinado com pickle.dump, carregá-los com pickle.load e prever sem treinar de novo. Só carregue .pkl de fonte confiável: abrir o arquivo pode executar código embutido.
Neste vídeo (19 min):
- 1:25 - Serialização e desserialização: salvar uma variável num arquivo no ponto em que o código parou e carregá-la em outro código
- 3:20 - Primeiro exemplo com uma lista de produtos e o
import pickle, módulo que já vem instalado no Python - 4:45 -
with open("lista.pkl", "wb") as arquivo: a extensão.pkle o modo de escrita binária - 6:00 -
pickle.dump(lista, arquivo)grava a lista e cria olista.pklna pasta, que só o Python consegue ler - 7:25 - Num arquivo vazio, abrir o
lista.pklno modorbe recuperar a lista compickle.load(arquivo) - 8:35 - O pickle não conecta os dois códigos: alterar a lista no original não muda o que o outro arquivo carrega
- 10:05 - O pickle guarda qualquer tipo de variável, inclusive um modelo de IA, e o Jupyter como ambiente do segundo exemplo
- 11:35 - O projeto de exemplo: um modelo de árvore de decisão que prevê vendas a partir do investimento em TV, rádio e jornal
- 14:10 - Depois do treino,
pickle.dumpsalva o modelo pronto no arquivomodelo.pkl - 15:25 -
.predict()sobre uma base nova, só com os valores de investimento, gera a previsão de vendas de cada linha - 17:15 - Em outro notebook,
modelo = pickle.load(arquivo)carrega o modelo e repete as mesmas previsões sem novo treino - 18:30 - O mesmo processo vale para dicionários, listas, objetos de bibliotecas e qualquer outra variável Python
Trechos do vídeo:
- O
pickleserializa uma variável Python num arquivo e a desserializa depois, em outro código ou outro computador, com o mesmo conteúdo; o arquivo precisa vir de fonte confiável, porquepickle.loadpode executar código embutido - Para gravar, abra o arquivo no modo
wbe usepickle.dump(objeto, arquivo); para ler, use o modorbepickle.load(arquivo) - O arquivo
.pklé uma cópia do objeto no momento em que foi salvo: mudar a variável no código original não altera o arquivo até que ele seja gravado de novo - Salvar um modelo de inteligência artificial já treinado evita repetir um treino que pode levar minutos ou horas sempre que se quer fazer uma nova previsão
- O modelo carregado do arquivo devolve exatamente as mesmas previsões do modelo original, porque é o mesmo objeto perpetuado
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Salvar Pedaços de Código Python Pickle
Você sabia que é possível salvar pedaços de código no Python? Eu quero te mostrar como armazenar um objeto no Python para que você possa utilizar posteriormente.
Isso será feito com o Python Pickle que é uma ferramenta que já vem instalada no Python, então você não vai precisar instalar nada!
Perpetuar Objetos no Python
Por que esse método que vamos utilizar é útil e pode te ajudar? Você já deve ter criado códigos grandes ou até uma inteligência artificial e sabe que isso demora a rodar.
Então para que você não tenha que perder tempo rodando todo o seu código de novo, sempre que precisar do resultado ou do modelo de inteligência artificial, é que vamos utilizar o Pickle!
Essa ferramenta vai te permitir pegar um objeto no Python e salvar ele em um arquivo e sempre que você quiser utilizá-lo vai poder carregar ele dentro de outro arquivo para que ele funcione normalmente.
lista = ["produtoA", "produtoB", "produtoC"]
import pickle
with open("lista.pkl", "wb") as arquivo:
pickle.dump(lista, arquivo)Aqui nós estamos criando uma lista bem simples com produtos para te mostrar como funciona essa ferramenta.
Em seguida vamos importar a biblioteca pickle e por fim nós vamos abrir o arquivo lista.pkl com a estrutura with para abrir arquivos.
Como nós não temos esse arquivo o Python vai criar o arquivo lista com a extensão pkl que é a extensão do pickle.
Depois nós vamos utilizar o método pickle.dump para informar o que nós vamos armazenar e onde vamos armazenar.
Isso quer dizer que estamos armazenando a nossa lista no arquivo que acabamos de criar!
Depois disso você vai notar que na pasta onde está o seu código vai ser criado o arquivo lista.pkl que é exatamente o arquivo que contém as informações que acabamos de guardar.
Agora nós vamos fazer o seguinte, vamos pegar esse arquivo e vamos colocar em outra pasta com um arquivo de Python do zero.
Isso quer dizer que não temos relação entre os 2 arquivos, então vamos escrever esse segundo código do zero para utilizar esse arquivo que criamos.
import pickle
with open("lista.pkl", "wb") as arquivo:
pickle.dump(lista, arquivo)
print(lista)
Aqui vamos importar novamente o pickle, pois estamos em outro arquivo e precisamos importar a biblioteca para poder usá-la.
Em seguida vamos utilizar a estrutura with para poder abrir o arquivo. Você vai perceber que na primeira vez nós utilizamos “wb” que é para escrever em binário.
E agora nós vamos utilizar o “rb” que é para ler em binário, então vamos ler esse arquivo e vamos atribuir o conteúdo dele a uma variável qualquer.
Depois basta printar essa variável para que veja que temos exatamente o mesmo conteúdo que foi guardado.
Com isso nós podemos perpetuar objetos no Python para utilizar em outros códigos de uma forma muito fácil sem ter que ficar rodando o código várias vezes.
Agora nós vamos para outro exemplo utilizando um código para criar inteligência artificial, será que podemos fazer o mesmo procedimento?
Não vamos poder armazenar só variáveis, mas também modelos de inteligência artificial e é o que nós vamos fazer agora.
OBS: Os arquivos estão disponíveis para download, assim facilita e você consegue acompanhar de forma mais fácil. Caso você não esteja utilizando o Jupyter você terá que instalar 3 bibliotecas, que são: matplotlib, seaborn e o scikit-learn.
import pandas as pd
tabela = pd.read_csv("novos.csv")
previsao = modelo_arvoredecisao.predict(tabela)
display(tabela)
print(previsao)Vamos para a parte do código que vai nos interessar no momento, lembrando que não vamos entrar em detalhes nesse código da inteligência artificial, mas o código está disponível para download.
Essa variável modelo_arvoredecisao é um modelo de inteligência artificial que olha informações de investimentos em propaganda em TV, rádio e jornal e consegue prever quanto vão ser as vendas de acordo com essas informações.
Ao rodar esse código nós vamos ter esse modelo pronto, só que para que você não tenha que sempre esperar esse código todo rodar para gerar esse modelo é que nós vamos utilizar o pickle.
import pickle
with open("lista.pkl", "wb") as arquivo:
pickle.dump(modelo_arvoredecisao, arquivo)Vamos fazer exatamente o mesmo procedimento que fizemos com a nossa lista no exemplo anterior, só que agora com a variável que está guardando o nosso modelo de inteligência artificial.
Isso quer dizer que nesse arquivo nós já temos uma inteligência artificial já treinada, então já foi criada, treinada e já está pronta para fazer previsões.
Então o que vamos ter que fazer é o que já vimos também no exemplo anterior, que é um código bem simples.
import pickle
with open("lista.pkl", "rb") as arquivo:
modelo_arvoredecisao = pickle.load(arquivo)
import pandas as pd
tabela = pd.read_csv("novos.csv")
previsao = modelo_arvoredecisao.predict(tabela)
display(tabela)
print(previsao)
Nós vamos importar a biblioteca pickle, abrir o arquivo e atribuir o conteúdo a uma variável. Depois basta utilizar a biblioteca pandas para fazer nossas análises com base no arquivo “novos.csv”.
Depois disso nós vamos ter exatamente o mesmo resultado, pois a base de dados é a mesma que utilizamos no outro código.
Isso quer dizer que para esse código nós não tivemos que criar nem que treinar a inteligência artificial, pois isso já tinha sido feito.
Então nós vamos “pular” essas etapas e partir direto para a análise desses dados e obter a nossa previsão.
Agora você já sabe como perpetuar objeto e como perpetuar modelos de inteligência artificial no Python utilizando o Pickle.
Perguntas frequentes
1. Como salvar uma lista em arquivo com o Pickle?
Importe o módulo com import pickle, abra o arquivo em modo de escrita binária usando with open(lista.pkl, wb) as arquivo e chame pickle.dump(lista, arquivo). Se o arquivo ainda não existir, o Python cria na hora, na mesma pasta do seu código, com a extensão .pkl.
2. Como abrir um arquivo .pkl em outro código Python?
Basta importar o pickle no arquivo novo e ler em binário: with open(lista.pkl, rb) as arquivo e depois pickle.load(arquivo), guardando o retorno em uma variável. Os dois códigos não precisam ter nenhuma relação entre si, só o arquivo .pkl é necessário.
3. O que significam os modos wb e rb no Pickle?
O wb vem de write binary: abre o arquivo para escrever em binário, que é como o Pickle grava. O rb vem de read binary e serve para ler o conteúdo salvo. Grave sempre com wb e leia com rb, senão o Python não consegue reconstruir o objeto guardado.
4. Dá para salvar um modelo de machine learning com o Pickle?
Sim. O procedimento é o mesmo da lista: depois de treinar o modelo (no exemplo da aula, uma árvore de decisão que prevê vendas a partir de investimento em TV, rádio e jornal), salve a variável com pickle.dump. Em outro código, o pickle.load devolve o modelo pronto para prever.
Conclusão de Como Perpetuar Objetos no Python
Nessa aula eu te mostrei uma ferramenta muito útil dentro do Python que te permite perpetuar objetos no Python e até mesmo modelos de inteligência artificial.
Dessa forma você não precisa ficar rodando o seu código para obter o resultado desejado e utilizá-lo.
Basta rodar uma vez e salvar o objeto ou modelo dentro de um arquivo para utilizar em outros códigos!
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


