Python Arquivo ZIP com exemplo
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)
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
Explicaรงรฃo do cรณdigo
- 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
Agora seu arquivo archive.zip aparecerรก no seu sistema operacional (Windows explorer)
Passo 3) Ao clicar duas vezes no arquivo, vocรช verรก a lista de todos os arquivos contidos nele.
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โ.
Explicaรงรฃo do cรณdigo
- 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.
Ao clicar duas vezes no arquivo โtestguru99.zipโ, outra janela serรก aberta, e esta mostrarรก os arquivos nela incluรญdos.
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")
Resumo
- Para compactar o diretรณrio inteiro, use o comando โshutil.make_archive(โnameโ,โzipโ, root_dir)
- Para selecionar os arquivos para compactar use o comando โZipFile.write(filename)โ







