Python Unzip File: Como extrair arquivos simples ou múltiplos
On Setembro 24, 2021 by adminPython ZipFile é uma classe de módulo zipfile para leitura e escrita de arquivos zip. ZIP é o formato de arquivo que suporta compressão de dados sem perdas.
Por compressão sem perdas, queremos dizer que o algoritmo de compressão permite que os dados originais sejam inteiramente reconstruídos a partir dos dados comprimidos.
Um arquivo ZIP é um único arquivo contendo um ou mais arquivos compactados, oferecendo uma maneira fácil de fazer arquivos grandes menores e manter os arquivos relacionados juntos.
Python unzip file
Para trabalhar com arquivos zip usando Python, usaremos um módulo python embutido chamado zipfile. No módulo zipfile do Python, a classe ZipFile fornece uma função de membro para extrair todo o conteúdo do arquivo ZIP.
Para descompactar um arquivo em Python, use o método ZipFile.extractall(). O método extractall() toma um caminho, membros, pwd como argumento, e extrai todo o conteúdo.
Syntax
ZipFile.extractall(path=None, members=None, pwd=None)
Aceita os seguintes parâmetros :
- caminho: local onde o arquivo zip precisa ser extraído; se não for fornecido, ele irá extrair o conteúdo no diretório atual.
- members: lista de arquivos a serem extraídos. Ele irá extrair todos os arquivos no zip se este argumento não for fornecido.
- pwd: Se o arquivo zip for criptografado, então passe a senha neste argumento por padrão é None.
Exemplo de Python unzip
Dizemos que, no meu diretório de trabalho atual, eu tenho um arquivo zip chamado Mail3.zip, e eu quero descompactá-lo usando o ZipFile.extractall() method.
Veja o seguinte código.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in current directory zipObj.extractall()
Output
python3 app.py
Extrairá os ficheiros no mesmo directório que o seu ficheiro app.py de programação.
Extrairá todos os ficheiros no zip do directório actual. Se os ficheiros com o mesmo nome já estiverem presentes no local de extracção, ele irá sobregravar esses ficheiros.
Usamos Python com comando para abrir os arquivos. O “Python com” assegura que os descritores de ficheiros abertos são fechados automaticamente após a execução do programa deixar o contexto do com comando.
Extrair todos os arquivos de um arquivo zip para um diretório diferente
Nós podemos extrair todos os arquivos do arquivo zip para um diretório diferente, e para fazer isso, precisamos passar o local de destino como um argumento em extractall(). O caminho pode ser relativo ou absoluto.
Veja o seguinte código.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in different directory zipObj.extractall('temp') print('File is unzipped in temp folder')
Aqui, um objeto ZipFile é feito chamando um construtor de ZipFile, que aceita o nome do arquivo zip e os parâmetros de modo. Criamos o objeto ZipFile em modo READ e o nomeamos como zipObj.
Na saída. Se a pasta temp não estiver lá, ela criará essa pasta no diretório atual e descompactará todo o conteúdo do arquivo Mail3.zip.
Output
python3 app.pyFile is unzipped in temp folder
Extract files from a large zip file based on the condition
Vamos dizer que temos um enorme arquivo zip, e precisamos de alguns arquivos de milhares de arquivos no arquivo. Descompactar todos os ficheiros de um grande ficheiro zip pode demorar minutos. Mas se você estiver interessado em apenas alguns dos arquivos arquivados, então ao invés de descompactar o arquivo inteiro, podemos extrair o único arquivo também do arquivo zip.
Python ZipFile class provides a member function to extract a single from a ZIP File.
ZipFile.extract(member, path=None, pwd=None)
See o seguinte código.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObject: listOfFileNames = zipObject.namelist() for fileName in listOfFileNames: if fileName.endswith('.py'): # Extract a single file from zip zipObject.extract(fileName, 'temp_py') print('All the python files are extracted')
Se os nomes dos arquivos tiverem a extensão .py, então ele irá extrair dentro da pasta temp_py. Caso contrário, ele não irá extrair os arquivos.
Conclusion
Unzip files in Python é muito fácil porque Python fornece o módulo zipfile.
O módulo zipfile tem todas as funções de descompactar arquivos simples ou múltiplos com base nas condições.
Finalmente, Python Unzip: Como Extrair Arquivos Simples ou Múltiplos terminou o tutorial.
Veja Também
Python zip()
Python zip lista de listas
Python zip dicionário
Unzip Python tuples
Python lista para dataframe
Python lista para dicionário
Deixe uma resposta