Descomprimir archivos en Python

Resuelto John Howard asked hace 14 años • 9 respuestas

Leí la zipfiledocumentación , pero no pude entender cómo descomprimir un archivo, solo cómo comprimir un archivo. ¿Cómo descomprimo todo el contenido de un archivo zip en el mismo directorio?

John Howard avatar Aug 10 '10 23:08 John Howard
Aceptado
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)

¡Eso es practicamente todo!

Rahul avatar Aug 10 '2010 16:08 Rahul

Si está utilizando Python 3.2 o posterior:

import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
    zip_ref.extractall("targetdir")

No es necesario utilizar close o try/catch con esto ya que utiliza la construcción del administrador de contexto .

user1741137 avatar Apr 16 '2016 10:04 user1741137

zipfileEs una biblioteca de nivel algo bajo. A menos que necesite los detalles específicos que proporciona, puede utilizar shutillas funciones de nivel superior make_archivey unpack_archive.

make_archiveya está descrito en esta respuesta. Como para unpack_archive:

import shutil
shutil.unpack_archive(filename, extract_dir)

unpack_archivedetecta el formato de compresión automáticamente a partir de la "extensión" de filename( .zip, .tar.gz, etc), y también lo hace make_archive. Además, filenamey extract_dirpuede ser cualquier objeto similar a una ruta (por ejemplo, instancias de pathlib.Path ) desde Python 3.7.

fonini avatar Sep 28 '2020 21:09 fonini

Utilice el extractallmétodo, si está utilizando Python 2.6+

zip = ZipFile('file.zip')
zip.extractall()
Dan Breen avatar Aug 10 '2010 16:08 Dan Breen