🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 10 de outubro de 2024

Você sabia que é possível abrir e trabalhar com arquivos ZIP no Python de forma automática? Aprenda como fazer isso com as bibliotecas Pandas e ZipFile.

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Como Abrir Arquivos Zip em Python Automaticamente

Trabalhar com arquivos zip automaticamente no Python pode ser uma solução valiosa quando estamos lidando com grandes conjuntos de dados, muitos arquivos, ou automatizando processos.

Ao utilizar as bibliotecas Pandas e ZipFile, conseguimos simplificar e automatizar esse processo, abrindo e manipulando arquivos ZIP, sejam eles simples ou contendo múltiplos arquivos.

Arquivos zip Disponíveis

No material disponível para download, você encontrará dois arquivos zip para testar com o código que vamos desenvolver.

Arquivos zip Disponíveis

No arquivo produtos_agricolas_1.zip, haverá apenas um arquivo dentro. Já no arquivo produtos.zip, temos dois arquivos compactados.

Bibliotecas Necessárias

Para essa aula, utilizaremos as bibliotecas Pandas e ZipFile. A biblioteca ZipFile já faz parte da biblioteca padrão do Python, então você só precisará instalar o Pandas utilizando o seguinte comando: pip install pandas

comando: pip install pandas

Leitura de Arquivos zip Simples com Pandas

Com o Pandas instalado, podemos partir para o nosso primeiro exemplo, onde iremos ler um arquivo zip simples.

Nesses casos, quando o arquivo zip contém um único arquivo, como uma tabela de dados em formato CSV, a maneira mais rápida e direta de acessar os dados é utilizando o Pandas.

Ele possui uma funcionalidade nativa que permite ler arquivos comprimidos diretamente, simplificando o processo de importação e análise de dados.

Basta usar o método de leitura adequado ao tipo de arquivo compactado. Como estamos lidando com um arquivo CSV, vamos utilizar o método read_csv(). Se fosse um arquivo Excel, por exemplo, usaríamos read_excel().

import pandas as pd

tabela = pd.read_csv("produtos_agricolas_1.zip")

print(tabela)

O Pandas infere automaticamente que o arquivo está comprimido e lida com a descompressão para você, exibindo a tabela de produtos agrícolas corretamente.

Leitura de Arquivos zip Simples com Pandas

Caso receba um erro durante esse processo, pode ser que a sua versão do Pandas não esteja atualizada. Nesse caso, basta adicionar o parâmetro compression ao método read_csv.

import pandas as pd

tabela = pd.read_csv("produtos_agricolas_1.zip", compression="zip")

print(tabela)

Esse comando força o Pandas a usar o método correto de descompressão, garantindo que o arquivo zip seja processado corretamente.

Leitura de Múltiplos Arquivos zip com ZipFile

Quando o arquivo zip contém múltiplos arquivos ou pastas compactadas, é necessário um controle maior sobre o conteúdo. Nesses casos, somente o Pandas não conseguirá lidar com os arquivos automaticamente e poderá retornar um erro.

Para resolver isso, utilizaremos o módulo ZipFile, que faz parte da biblioteca padrão do Python, para manipular arquivos zip. Continuaremos utilizando o Pandas para ler os arquivos CSV.

A primeira coisa que faremos no nosso código será importar as bibliotecas zipfile e pandas.

import pandas as pd
import zipfile

Em seguida, utilizaremos um bloco with para abrir o arquivo zip de forma segura, o que garante que o arquivo seja fechado corretamente após o uso, evitando erros e problemas de memória.

Para abrir o arquivo zip, utilizaremos a classe ZipFile do módulo zipfile. Essa classe fornece as funcionalidades necessárias para abrir, ler, criar e manipular arquivos zip.

Passamos o nome do arquivo e o parâmetro “r”, indicando que estamos abrindo o arquivo no modo de leitura.

Após abrir o arquivo, usamos o método .namelist() para obter uma lista com os nomes de todos os arquivos contidos no zip e, em seguida, imprimimos esses nomes na tela.

import pandas as pd
import zipfile

with zipfile.ZipFile("produtos.zip", "r") as pasta_zip:
    nomes_arquivos = pasta_zip.namelist()
    print(nomes_arquivos)
Arquivos zips listados

Para ler cada um desses arquivos, criamos um loop for que itera sobre a lista de arquivos.

Usamos o método open() da biblioteca zipfile, que permite abrir os arquivos compactados sem precisar extraí-los. Em seguida, lemos esses arquivos como tabelas utilizando o método read_csv() do Pandas.

Por fim, exibimos o conteúdo das tabelas com um print().

import pandas as pd
import zipfile

with zipfile.ZipFile("produtos.zip", "r") as pasta_zip:
    nomes_arquivos = pasta_zip.namelist()
    print(nomes_arquivos)
    for arquivo in nomes_arquivos:
        tabela = pd.read_csv(pasta_zip.open(arquivo))
        print(tabela)
Leitura de Múltiplos Arquivos zip com ZipFile

Lidando com Arquivos zip Grandes e Estruturados

Em alguns casos, você precisará lidar com arquivos zip que possuem várias camadas de subpastas, arquivos e até outros arquivos zip dentro.

Nesses casos, pode ser necessário o uso de bibliotecas adicionais, como os ou pathlib, para navegar pela estrutura de diretórios e acessar os arquivos desejados.

A abordagem básica ainda é usar ZipFile para abrir o arquivo, mas, dependendo da estrutura, pode ser necessário concatenar caminhos de diretórios ou realizar verificações adicionais antes de processar os arquivos.

Conclusão – Como Abrir Arquivos zip no Python Automaticamente

Nessa aula, mostrei como trabalhar com arquivos ZIP no Python utilizando duas abordagens eficientes e práticas com as bibliotecas Pandas e ZipFile.

Essas abordagens são extremamente úteis quando você precisa automatizar processos e leituras de arquivos comprimidos, sem a necessidade de extração manual, o que economiza tempo e torna seu código mais eficiente.

Essas ferramentas serão muito úteis quando você precisar lidar com grandes volumes de dados comprimidos, seja em projetos pessoais ou profissionais.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


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

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

Diego Monutti

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.