Descomprimir archivos en Python
Leí la zipfile
documentació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?
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)
¡Eso es practicamente todo!
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 .
zipfile
Es una biblioteca de nivel algo bajo. A menos que necesite los detalles específicos que proporciona, puede utilizar shutil
las funciones de nivel superior make_archive
y unpack_archive
.
make_archive
ya está descrito en esta respuesta. Como para unpack_archive
:
import shutil
shutil.unpack_archive(filename, extract_dir)
unpack_archive
detecta 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, filename
y extract_dir
puede ser cualquier objeto similar a una ruta (por ejemplo, instancias de pathlib.Path ) desde Python 3.7.
Utilice el extractall
método, si está utilizando Python 2.6+
zip = ZipFile('file.zip')
zip.extractall()