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: