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 .pkl e o modo de escrita binária
  • 6:00 - pickle.dump(lista, arquivo) grava a lista e cria o lista.pkl na pasta, que só o Python consegue ler
  • 7:25 - Num arquivo vazio, abrir o lista.pkl no modo rb e recuperar a lista com pickle.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.dump salva o modelo pronto no arquivo modelo.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 pickle serializa 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, porque pickle.load pode executar código embutido
  • Para gravar, abra o arquivo no modo wb e use pickle.dump(objeto, arquivo); para ler, use o modo rb e pickle.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!

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

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.

Python
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.

Python
import pickle



with open("lista.pkl", "wb") as arquivo:

	pickle.dump(lista, arquivo)



print(lista)
Perpetuar Objetos no Python
Lendo o arquivo no formato pickle

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.

Python
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.

Python
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.

Python
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)
Perpetuar Objetos no Python
Abrindo e executando o modelo da inteligência artificial já treinado

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!


Quer aprender mais sobre Python com um minicurso básico gratuito?