Python Unzip File: Cómo extraer archivos individuales o múltiples
On septiembre 24, 2021 by adminPython ZipFile es una clase de módulo zipfile para leer y escribir archivos zip. ZIP es el formato de archivo que soporta la compresión de datos sin pérdida.
Por compresión sin pérdidas, queremos decir que el algoritmo de compresión permite reconstruir completamente los datos originales a partir de los datos comprimidos.
Un archivo ZIP es un único archivo que contiene uno o más archivos comprimidos, ofreciendo una manera fácil de hacer que los archivos grandes sean más pequeños y mantener los archivos relacionados juntos.
Python unzip file
Para trabajar con archivos zip usando Python, utilizaremos un módulo incorporado de python llamado zipfile. En el módulo zipfile de Python, la clase ZipFile proporciona una función miembro para extraer todo el contenido del archivo ZIP.
Para descomprimir un archivo en Python, utilice el método ZipFile.extractall(). El método extractall() toma una ruta, members, pwd como argumento, y extrae todo el contenido.
Sintaxis
ZipFile.extractall(path=None, members=None, pwd=None)
Acepta los siguientes parámetros :
- ruta: ubicación donde se necesita extraer el archivo zip; si no se proporciona, extraerá el contenido en el directorio actual.
- members: lista de archivos a extraer. Extraerá todos los archivos del zip si no se proporciona este argumento.
- pwd: Si el archivo zip está encriptado, entonces pasa la contraseña en este argumento por defecto es None.
Ejemplo de Python unzip
Digamos que, en mi directorio de trabajo actual, tengo un archivo zip llamado Mail3.zip, y quiero descomprimirlo usando el método ZipFile.extractall().
Vea el siguiente 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()
Salida
python3 app.py
Extraerá los archivos en el mismo Directorio que su archivo app.py de programación.
Extraerá todos los archivos del zip en el Directorio actual. Si los archivos con el mismo nombre ya están presentes en la ubicación de extracción, sobrescribirá esos archivos.
Hemos utilizado Python con declaración para abrir los archivos. «Python with» asegura que los descriptores de archivo abiertos se cierren automáticamente después de que la ejecución del programa abandone el contexto de la sentencia with.
Extraer todos los archivos de un archivo zip a un directorio diferente
Podemos extraer todos los archivos del archivo zip a un directorio diferente, y para ello, necesitamos pasar la ubicación de destino como argumento en extractall(). La ruta puede ser relativa o absoluta.
Vea el siguiente 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')
Aquí se crea un objeto ZipFile llamando a un constructor ZipFile, que acepta el nombre del archivo zip y los parámetros de modo. Creamos el objeto ZipFile en modo READ y lo nombramos como zipObj.
En la salida. Si la carpeta temporal no está ahí, creará esa carpeta en el Directorio actual y descomprimirá todo el contenido del archivo Mail3.zip.
Salida
python3 app.pyFile is unzipped in temp folder
Extraer los archivos de un archivo zip grande basándose en la condición
Digamos que tenemos un archivo zip enorme, y necesitamos unos pocos archivos de entre los miles que hay en el archivo. Descomprimir todos los archivos de un zip grande puede llevar minutos. Pero si usted está interesado en algunos de los archivos archivados sólo, entonces en lugar de descomprimir todo el archivo, podemos extraer el archivo único también desde el archivo zip.
La clase ZipFile de Python proporciona una función miembro para extraer un solo de un archivo ZIP.
ZipFile.extract(member, path=None, pwd=None)
Vea el siguiente 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')
Si los nombres de los archivos tienen la extensión .py, entonces se extraerá dentro de la carpeta temp_py. De lo contrario, no extraerá los archivos.
Conclusión
Descomprimir archivos en Python es muy fácil porque Python proporciona el módulo zipfile.
El módulo zipfile tiene todas las funciones de descomprimir archivos individuales o múltiples basados en las condiciones.
Finalmente, el tutorial de Python Unzip: How To Extract Single or Multiple Files ha terminado.
Ver también
Python zip()
Python zip lista de listas
Python zip diccionario
Descomprimir tuplas Python
Lista Python a dataframe
Lista Python a diccionario
.
Deja una respuesta