Como compactar arquivos com 7z Zipfile em Python

Introdução

Compactar arquivos é uma tarefa comum quando se trabalha com programação. E em Python, podemos utilizar a biblioteca 7z Zipfile para realizar essa tarefa de forma simples e eficiente. Neste artigo, vamos aprender como compactar arquivos utilizando o 7z Zipfile em Python.

Instalando a biblioteca 7z Zipfile no Python

Para começar a utilizar a biblioteca 7z Zipfile em seus projetos Python, é necessário instalá-la corretamente. Felizmente, o processo de instalação é simples e pode ser feito usando o gerenciador de pacotes pip.

  1. Abra o terminal ou prompt de comando no seu sistema operacional.
  2. Digite o seguinte comando e pressione Enter:
pip install py7zr

Esse comando irá baixar e instalar a biblioteca 7z Zipfile no seu ambiente de desenvolvimento Python.

Compactação de arquivos

A primeira etapa para compactar um arquivo é garantir que a biblioteca 7z Zipfile esteja instalada no seu ambiente de desenvolvimento Python. Para isso, você pode utilizar o gerenciador de pacotes pip. Basta abrir o terminal e executar o seguinte comando:

pip install py7zr

Após a instalação da biblioteca, podemos começar a compactar nossos arquivos. Para isso, devemos importar o módulo py7zr e utilizar a função writeall para criar o arquivo compactado. Veja o código de exemplo abaixo:

import py7zr

def compactar_arquivo(caminho_arquivo, caminho_arquivo_compactado):
    with py7zr.SevenZipFile(caminho_arquivo_compactado, 'w') as arquivo_compactado:
        arquivo_compactado.writeall(caminho_arquivo)

caminho_arquivo = 'caminho/do/arquivo.txt'
caminho_arquivo_compactado = 'caminho/do/arquivo_compactado.7z'
compactar_arquivo(caminho_arquivo, caminho_arquivo_compactado)

No exemplo acima, definimos a função compactar_arquivo que recebe o caminho do arquivo que queremos compactar e o caminho do arquivo compactado que será gerado. Utilizamos o with statement para garantir que o arquivo compactado seja fechado corretamente após a execução do bloco de código.

Descompactação de arquivos

Agora que já sabemos como compactar um arquivo com o 7z Zipfile em Python, vamos entender como descompactar arquivos.

Como descompactar arquivos com 7z Zipfile em Python

Descompactar arquivos também é uma tarefa importante quando trabalhamos com programação. E com a biblioteca 7z Zipfile em Python, podemos facilmente descompactar arquivos compactados. Vamos ver como fazer isso.

Assim como na etapa de compactação, a primeira coisa que devemos fazer é garantir que a biblioteca 7z Zipfile esteja instalada no ambiente de desenvolvimento Python. Para isso, podemos usar o comando pip:

pip install py7zr

Com a biblioteca instalada, podemos prosseguir para o código de descompactação. Abaixo temos um exemplo de função que realiza a descompactação de um arquivo:

import py7zr

def descompactar_arquivo(caminho_arquivo_compactado, diretorio_destino):
    with py7zr.SevenZipFile(caminho_arquivo_compactado, mode='r') as arquivo_compactado:
        arquivo_compactado.extractall(path=diretorio_destino)

caminho_arquivo_compactado = 'caminho/do/arquivo_compactado.7z'
diretorio_destino = 'caminho/do/diretorio_destino'
descompactar_arquivo(caminho_arquivo_compactado, diretorio_destino)

No exemplo acima, criamos a função descompactar_arquivo que recebe o caminho do arquivo compactado e o diretório de destino onde queremos que os arquivos sejam extraídos. Utilizamos novamente o with statement para garantir o fechamento correto do arquivo após a extração.

Exemplos práticos de compactação e descompactação de arquivos com 7z Zipfile em Python

Agora que já entendemos como instalar a biblioteca 7z Zipfile, vamos ver alguns exemplos práticos de como compactar e descompactar arquivos utilizando essa poderosa ferramenta em Python.

Exemplo 1: Compactando um diretório inteiro

Suponha que você tenha um diretório chamado “dados” contendo diversos arquivos e subdiretórios. Você pode compactar todo o diretório em apenas um arquivo usando a biblioteca 7z Zipfile. Veja o código abaixo:

import py7zr

def compactar_diretorio(caminho_diretorio, caminho_arquivo_compactado):
    with py7zr.SevenZipFile(caminho_arquivo_compactado, 'w') as arquivo_compactado:
        arquivo_compactado.writeall(caminho_diretorio)

caminho_diretorio = 'caminho/do/diretorio'
caminho_arquivo_compactado = 'caminho/do/arquivo_compactado.7z'
compactar_diretorio(caminho_diretorio, caminho_arquivo_compactado)

Nesse exemplo, a função compactar_diretorio recebe o caminho do diretório que você deseja compactar e o caminho do arquivo compactado que será gerado. O método writeall é utilizado para compactar todos os arquivos e subdiretórios presentes no diretório especificado.

Exemplo 2: Descompactando um arquivo específico

Agora, vamos ver como descompactar um arquivo específico de um arquivo compactado. Veja o código abaixo:

import py7zr

def descompactar_arquivo_especifico(caminho_arquivo_compactado, nome_arquivo, diretorio_destino):
    with py7zr.SevenZipFile(caminho_arquivo_compactado, mode='r') as arquivo_compactado:
        arquivo_compactado.extract(path=diretorio_destino, targets=[nome_arquivo])

caminho_arquivo_compactado = 'caminho/do/arquivo_compactado.7z'
nome_arquivo = 'arquivo.txt'
diretorio_destino = 'caminho/do/diretorio_destino'
descompactar_arquivo_especifico(caminho_arquivo_compactado, nome_arquivo, diretorio_destino)

Nesse exemplo, a função descompactar_arquivo_especifico recebe o caminho do arquivo compactado, o nome do arquivo que você deseja descompactar e o diretório de destino onde o arquivo será extraído. O método extract é utilizado para descompactar apenas o arquivo especificado.

Esses são apenas dois exemplos de como utilizar a biblioteca 7z Zipfile em Python para compactar e descompactar arquivos. Experimente diferentes configurações e explore todas as funcionalidades disponíveis para otimizar o armazenamento e a transferência de dados em seus projetos Python.

A Awari é a melhor plataforma para aprender sobre ciência de dados no Brasil.

Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.

Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.


🔥 Intensivão de inglês na Fluency!

Nome*
Ex.: João Santos
E-mail*
Ex.: email@dominio.com
Telefone*
somente números