Arquivo ZIP Python com exemplo

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

Following comando irá compactar o diretório inteiro

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

Following comando dá a você controle sobre os arquivos que você deseja archive

ZipFile.write(filename)

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

Passo 1) Para criar um archive do Python, certifique-se de ter sua instrução de importação correta e em ordem. Aqui a declaração de importação para o archieu é from shutil import make_archive

Arquivo ZIP Python

Explicação do código

  • Importar marca_archive classe 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)
  • Então chamamos o módulo “shutil.make_archive(“guru99 archive, “zip”, root_dir)” para criar archive, que estará em 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 o archiO arquivo zip é criado no lado direito do painel.

Passo 2) Uma vez que você archive arquivo é feito, você pode clicar com o botão direito no arquivo e selecionar o sistema operacional, e ele mostrará seu archicinco arquivos nele, conforme mostrado abaixo

Arquivo ZIP Python

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

Arquivo ZIP Python

Passo 3) Quando você double-clique no arquivo, você verá a lista de todos os arquivos nele contidos.

Arquivo ZIP Python

Passo 4) Em Python podemos ter mais controle sobre archijá que podemos definir qual arquivo específico incluir em archieu. No nosso caso, incluiremos dois arquivos em archive “guru99.txt” e “guru99.txt.bak”.

Arquivo ZIP Python

Explicação do código

  • Importe a classe Zipfile do módulo Python do arquivo zip. 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 archive

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

Note: 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á o archicinco arquivos na pasta conforme mostrado abaixo.

Arquivo ZIP Python

Quando você double clique no arquivo “testguru99.zip”, abrirá outra janela, e esta mostrará os arquivos nela incluídos.

Arquivo ZIP Python

Aqui está o código completo

Exemplo de Python 2

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()

Exemplo de Python 3

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")

Resumo

  • Para compactar o diretório inteiro, use o comando “shutil.make_archive(“nome”,”zip”, root_dir)
  • Para selecionar os arquivos para compactar use o comando “ZipFile.write(filename)”