Arquivo ZIP Python: Aprenda a Compactar e Descompactar Arquivos
Neste artigo, vamos explorar o uso da biblioteca `zipfile` do Python para trabalhar com arquivos ZIP.
Glossário
O que é um arquivo ZIP no Python
Um arquivo ZIP é um formato de arquivo compactado amplamente utilizado que permite combinar vários arquivos em um único arquivo. No contexto do Python, a biblioteca zipfile
oferece suporte para a criação, leitura e manipulação desses arquivos compactados.
Compactando arquivos usando a biblioteca zipfile
do Python
Agora que já entendemos o que é um arquivo ZIP no Python, vamos aprender como compactar arquivos usando a biblioteca zipfile
. A compactação de arquivos é útil quando queremos reduzir o tamanho dos arquivos ou combinar vários arquivos em um único arquivo ZIP.
Para começar, importe a biblioteca zipfile
no seu script Python. Em seguida, crie um objeto ZipFile
passando o nome do arquivo ZIP que você deseja criar.
import zipfile
with zipfile.ZipFile('arquivo.zip', 'w') as zip:
# Adicione os arquivos que deseja compactar ao arquivo ZIP
zip.write('arquivo1.txt')
zip.write('arquivo2.txt')
No exemplo acima, criamos um arquivo ZIP chamado “arquivo.zip” e adicionamos os arquivos “arquivo1.txt” e “arquivo2.txt” a ele. A letra ‘w’ passada como segundo argumento indica que queremos abrir o arquivo ZIP no modo de gravação.
Você também pode compactar uma pasta inteira em um arquivo ZIP usando o método write()
com o parâmetro arcname
especificando o nome da pasta dentro do arquivo ZIP.



import zipfile
with zipfile.ZipFile('arquivo.zip', 'w') as zip:
# Compacte uma pasta inteira
zip.write('pasta', arcname='nome_da_pasta')
No exemplo acima, a pasta “pasta” será compactada e incluída no arquivo ZIP com o nome “nome_da_pasta”.
Descompactando arquivos ZIP no Python
Agora que aprendemos como compactar arquivos usando a biblioteca zipfile
do Python, vamos descobrir como descompactar arquivos ZIP.
Para começar, importe a biblioteca zipfile
no seu script Python. Em seguida, crie um objeto ZipFile
passando o nome do arquivo ZIP que você deseja descompactar.
import zipfile
with zipfile.ZipFile('arquivo.zip', 'r') as zip:
# Extraia todos os arquivos do arquivo ZIP para o diretório atual
zip.extractall()
No exemplo acima, abrimos o arquivo ZIP chamado “arquivo.zip” no modo de leitura (‘r’) e extraímos todos os arquivos para o diretório atual. O método extractall()
é usado para realizar a extração.
Você também pode especificar um diretório de destino para a extração, passando o caminho para o método extractall()
.
import zipfile
with zipfile.ZipFile('arquivo.zip', 'r') as zip:
# Extraia todos os arquivos do arquivo ZIP para um diretório específico
zip.extractall('diretorio_destino')
No exemplo acima, os arquivos serão extraídos para o diretório “diretorio_destino”.
Além disso, você pode extrair arquivos individuais de um arquivo ZIP usando o método extract()
. Basta passar o nome do arquivo que você deseja extrair como argumento.
import zipfile
with zipfile.ZipFile('arquivo.zip', 'r') as zip:
# Extraia um arquivo específico do arquivo ZIP
zip.extract('arquivo.txt')
No exemplo acima, o arquivo “arquivo.txt” será extraído do arquivo ZIP.



Exemplo prático de compactação e descompactação de arquivos usando Python
Neste exemplo prático, vamos ver como podemos usar a biblioteca zipfile
do Python para compactar e descompactar arquivos em um cenário real.
Suponha que você tenha um projeto de desenvolvimento web com várias pastas e arquivos relacionados. Para facilitar o compartilhamento do projeto, você deseja compactar todos os arquivos em um único arquivo ZIP.
import zipfile
import os
# Crie um novo arquivo ZIP
with zipfile.ZipFile('projeto.zip', 'w') as zip:
# Compacte todos os arquivos do projeto
for root, dirs, files in os.walk('projeto'):
for file in files:
zip.write(os.path.join(root, file), arcname=os.path.join('projeto', file))
No exemplo acima, estamos compactando todos os arquivos do diretório “projeto” e seus subdiretórios para um novo arquivo ZIP chamado “projeto.zip”. O nome do diretório “projeto” dentro do arquivo ZIP será mantido para manter a estrutura original do projeto.
Agora que temos o arquivo ZIP do projeto, podemos enviá-lo ou compartilhá-lo facilmente com outras pessoas. Para extrair os arquivos do arquivo ZIP, podemos usar o seguinte código:
import zipfile
# Abra o arquivo ZIP do projeto
with zipfile.ZipFile('projeto.zip', 'r') as zip:
# Extraia todos os arquivos para o diretório atual
zip.extractall()
No exemplo acima, estamos abrindo o arquivo ZIP “projeto.zip” no modo de leitura (‘r’) e extraímos todos os arquivos para o diretório atual.
Conclusão
Neste artigo, exploramos o uso da biblioteca zipfile
do Python para trabalhar com arquivos ZIP. Aprendemos o que é um arquivo ZIP e como compactar e descompactar arquivos usando essa biblioteca.
Ao aprender a trabalhar com arquivos ZIP no Python, você poderá aproveitar os benefícios da compactação de arquivos e do agrupamento de vários arquivos em um único arquivo. Isso pode facilitar o compartilhamento, a transferência e a organização de dados em seus projetos.


