Descompactar ficheiros em Python
-
Descompactar ficheiros em Python Utilizando o
extractall()
Método para o Directório de Trabalho -
Descompacte arquivos em Python usando o método
extractall()
para um diretório diferente -
Descompacte arquivos em Python usando o método
extractall()
com base na condição -
Descompactar ficheiros em Python utilizando o
unpack_archive()
Método
Um ficheiro ZIP
tem um formato de ficheiro de arquivo e ajuda na compressão de dados sem perdas. Um único ficheiro ZIP
pode conter mais do que um ficheiro comprimido. Num ficheiro ZIP
, vários ficheiros são transferidos mais rapidamente do que um único ficheiro, o que diminui o tamanho dos dados. O módulo Python inbuilt ZipFile
pode ser utilizado para descomprimir os ficheiros Zip.
Este artigo irá discutir os diferentes métodos para extrair os ficheiros comprimidos ou Zip em Python.
Descompactar ficheiros em Python Utilizando o extractall()
Método para o Directório de Trabalho
Vamos primeiro importar o módulo Python inbuilt zipfile
do Python utilizando o comando abaixo.
from zipfile import ZipFile
O código completo do exemplo é o seguinte:
from zipfile import ZipFile
test_file_name = "my_files.zip"
with ZipFile(test_file_name, "r") as zip:
zip.printdir()
zip.extractall()
O r
na função ZipFile
representa a operação de leitura do ficheiro, enquanto que a função extractall()
extrairá o conteúdo do ficheiro zip para o directório de trabalho actual.
Resultado:
File Name Modified Size
file1.txt 2020-11-09 23:03:06 0
file2.txt 2020-11-09 23:03:18 0
Descompacte arquivos em Python usando o método extractall()
para um diretório diferente
Este método extrai os ficheiros zip mas para um directório diferente. A principal diferença é que passaremos o directório de destino como um argumento no método extractall()
.
O código completo do exemplo é o seguinte:
from zipfile import ZipFile
with ZipFile("my_files.zip", "r") as zip:
zip.extractall("temp")
print("File is unzipped in temp folder")
Um novo directório temp
será criado no directório de trabalho actual, e todos os ficheiros zip são aí extraídos.
Resultado:
Files are unzipped in temp folder
Descompacte arquivos em Python usando o método extractall()
com base na condição
Este método é útil quando se tem um grande número de ficheiros num ficheiro zip, e é necessário extrair ficheiros com uma extensão específica. Por exemplo, iremos extrair ficheiros .txt
do ficheiro zip.
O código completo do exemplo é o seguinte:
from zipfile import ZipFile
with ZipFile("my_files.zip", "r") as obj_zip:
FileNames = obj_zip.namelist()
for fileName in FileNames:
if fileName.endswith(".txt"):
zipObj.extract(fileName, "temp_txt")
A função namelist()
devolve os nomes de todos os ficheiros no ficheiro zip.
O método endswith()
verifica se o nome do ficheiro termina com .txt
. Se assim for, a função extract()
extrairá os ficheiros .txt
para a pasta temp_txt
no directório de trabalho actual.
Descompactar ficheiros em Python utilizando o unpack_archive()
Método
Este método utiliza o módulo Python inbuilt shutil
em Python. Ele extrairá todos os formatos de ficheiros arquivados.
O código completo do exemplo é o seguinte:
import shutil
shutil.unpack_archive("test.zip")
Os ficheiros extraídos estarão no directório de trabalho actual onde está a executar este script.