Python Arquivo ZIP com exemplo

⚡ Resumo Inteligente

Python Cria arquivos ZIP com os módulos integrados shutil e zipfile. Aqui você aprenderá a compactar um diretório inteiro usando make_archive(), compactar arquivos específicos com ZipFile e muito mais.tract, listar e ler o conteúdo do arquivo.

  • 🗜️ make_archive(): shutil.make_archive() compacta um diretório inteiro em um arquivo .zip.
  • 📄 ZipFile.write(): O método ZipFile.write() adiciona arquivos específicos a um arquivo compactado, um por um.
  • 📂 extracalto(): ZipFile.extracA função tall() descompacta todos os arquivos de um arquivo compactado em uma pasta.
  • 📋 lista de nomes(): ZipFile.namelist() lista os nomes dos arquivos dentro de um arquivo ZIP.
  • 🤖 Ajuda da IA: Ferramentas de IA como o Copilot geram e descompactam códigos instantaneamente.

Python Arquivo ZIP

Python permite que você crie rapidamente arquivos zip/tar.

O comando a seguir compactará o diretório inteiro

shutil.make_archive(output_filename, 'zip', dir_name)

O comando a seguir lhe dá controle sobre os arquivos que você deseja arquivar

ZipFile.write(filename)

Como compactar um diretório inteiro em um arquivo ZIP Python

Aqui estão as etapas para criar um arquivo Zip em Python

Passo 1) Para criar um arquivo compactado de Python, certifique-se de que sua declaração de importação esteja correta e em ordem. Aqui, a declaração de importação para o arquivo é from shutil import make_archive

Python Arquivo ZIP

Code Explicação

  • Importe a classe make_archive do módulo shutil
  • Use a função split para separar o diretório e o nome do arquivo do caminho até o local do arquivo de texto (guru99)
  • Em seguida, chamamos o módulo “shutil.make_archive(“guru99 archive, “zip”, root_dir)” para criar o arquivo compactado, que estará no formato zip
  • Depois disso, passamos o diretório raiz das coisas que queremos compactar. Então, tudo no diretório será compactado
  • Ao executar o código, você pode ver que o arquivo zip foi criado no lado direito do painel.

Passo 2) Depois que seu arquivo compactado for criado, você pode clicar com o botão direito no arquivo e selecionar o sistema operacional, e ele mostrará seus arquivos compactados como mostrado abaixo

Python Arquivo ZIP

Agora seu arquivo archive.zip aparecerá no seu sistema operacional (Windows explorer)

Python Arquivo ZIP

Passo 3) Ao clicar duas vezes no arquivo, você verá a lista de todos os arquivos contidos nele.

Python Arquivo ZIP

Como compactar arquivos específicos usando o ZipFile

Passo 4) In Python podemos ter mais controle sobre o arquivo, pois podemos definir qual arquivo específico incluir em arquivo. No nosso caso, incluiremos dois arquivos em arquivo “guru99.txt” e “guru99.txt.bak”.

Python Arquivo ZIP

Code Explicação

  • Importar classe Zipfile do arquivo zip Python módulo. Este módulo oferece controle total sobre a criação de arquivos zip
  • Criamos um novo arquivo Zip com nome (“testguru99.zip, “w”)
  • A criação de uma nova classe Zipfile requer permissão porque é um arquivo, então você precisa gravar informações no arquivo como newzip
  • Usamos a variável “newzip” para nos referir ao arquivo zip que criamos
  • Usando a função write na variável “newzip”, adicionamos os arquivos “guru99.txt” e “guru99.txt.bak” ao arquivo

Ao executar o código você pode ver que o arquivo é criado no lado direito do painel com o nome “guru99.zip”

Observação: Aqui não damos nenhum comando para “fechar” o arquivo como “newzip.close” porque usamos o bloqueio de escopo “With”, então quando o programa sair deste escopo o arquivo será limpo e fechado automaticamente.

Passo 5) Quando você -> clique com o botão direito no arquivo (testguru99.zip) e -> selecione seu sistema operacional (Windows explorer), ele mostrará os arquivos compactados na pasta conforme mostrado abaixo.

Python Arquivo ZIP

Ao clicar duas vezes no arquivo “testguru99.zip”, outra janela será aberta, e esta mostrará os arquivos nela incluídos.

Python Arquivo ZIP

Automação Python Code Para criar um arquivo ZIP

Aqui está o código completo

Python 2 Exemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3 Exemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Como Extract (Descompactar) um arquivo ZIP em Python

Para descompactar um arquivo, abra-o em modo de leitura com ZipFile e chame ex.tracalto() para extracem todos os arquivos, ou extract() para extrair um único membro.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

O extracO método tall() grava todos os arquivos arquivados na pasta que você passa como argumento.

Como listar arquivos em um arquivo ZIP Archive

Você pode inspecionar um arquivo sem extracO método namelist() retorna os nomes de todos os arquivos armazenados dentro do arquivo ZIP.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Este comando imprime uma lista dos nomes dos arquivos contidos no arquivo compactado.

Como ler um arquivo dentro de um arquivo ZIP Archive

Você pode ler um arquivo de membro diretamente do arquivo compactado sem precisar descompactá-lo.ping Grave-o em disco usando o método open() da classe ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Isso é útil quando você precisa apenas do conteúdo de um arquivo de um arquivo grande.

Perguntas Frequentes

Use shutil.make_archive(name, 'zip', root_dir) para compactar um diretório ou abra um ZipFile no modo de escrita e chame write() para adicionar arquivos específicos ao arquivo.

shutil.make_archive() compacta um diretório inteiro em uma única chamada, enquanto zipfile.ZipFile oferece um controle mais preciso, permitindo adicionar, ler ou exportar arquivos.tract arquivos individuais dentro do arquivo.

Abra o arquivo com ZipFile('file.zip', 'r') e chame extracalto('pasta') para extract tudo, ou extract('name') para extrair um único arquivo do arquivo.

Abra o arquivo ZipFile no modo de leitura e chame a função namelist(), que retorna uma lista com todos os nomes de arquivos armazenados no arquivo compactado, sem extracting qualquer um deles.

A instrução `with` fecha automaticamente o arquivo quando o bloco termina, mesmo que ocorra um erro, portanto você não precisa chamar `close()` manualmente.

Assistentes de IA como o GitHub Copilot completam automaticamente as chamadas ZipFile e make_archive(), e geram loops que compactam ou descompactam vários arquivos a partir de uma descrição em linguagem simples.

Sim. Ferramentas com inteligência artificial podem automatizar a criação de scripts de backup e arquivamento, escolher entre shutil e zipfile e adicionar tratamento de erros para arquivos ausentes ou arquivos corrompidos.

Sim. Abra o arquivo ZipFile e, em seguida, use o método open() em um arquivo membro para ler seu conteúdo diretamente, sem extracgravando todo o arquivo no disco.

Resuma esta postagem com: