Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:comprimir_descomprimir

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:programacion:python:comprimir_descomprimir [2020/11/06 12:59] – creado tempwininformatica:programacion:python:comprimir_descomprimir [2020/11/06 13:15] (actual) – [Extraer todos los ficheros comprimidos] tempwin
Línea 1: Línea 1:
 ====== Python: Comprimir y descomprimir ====== ====== Python: Comprimir y descomprimir ======
  
-Se usa el módulo **patool** que permite comprimir en diferentes formatos (rar, tar, zip...), así como descomprimir.+Se usa el módulo **patool** que permite comprimir en diferentes formatos (rar, tar, zip...), así como descomprimir. Es un módulo externo así que hay que instalarlo con ''pip install patool'' 
 + 
 +===== Descomprimir ===== 
 + 
 +<code python> 
 +import patoolib 
 + 
 +import os 
 + 
 +os.chdir("/ruta/"
 + 
 +# Descomprimimos 
 +patoolib.extract_archive("fichero.zip", outdir = "directorio"
 +</code> 
 + 
 +Si queremos descomprimir un rar, es necesario tener instalado en el sistema **rar**, **unrar** o **p7z** y luego usaremos el método ''extract_archive()'' de la siguiente manera: 
 + 
 +<code python> 
 +patoolib.extract_archive("fichero.rar", outdir = "directorio", program="unrar"
 +</code> 
 + 
 +Lo que indicamos en el parámetro ''program'' es el nombre del ejecutable que realizará la descompresión del fichero ''.rar'' 
 + 
 +===== Ejemplos ===== 
 + 
 +==== Descompresor por lotes ==== 
 + 
 +Descomprime todos los ficheros con extensión ''gz'' que hay el directorio ''/home/usuario/directorio'' y vuelca el contenido en el directorio ''/home/usuario/extraidos'' 
 + 
 +<code python> 
 +import os 
 +import glob 
 +import patoolib 
 +            
 +def extractFiles(indir="/home/usuario/directorio",out="/home/usuario/extraidos"): 
 +    os.chdir(indir) 
 +    archives=glob.glob("*.gz"
 +    print (archives) 
 +    if not os.path.exists(out): 
 +       os.makedirs(out) 
 +    files=os.listdir("Extracted"
 +    print(files) 
 +    for archive in archives: 
 +        if archive[:-3] not in files: 
 +            patoolib.extract_archive(archive,outdir=out) 
 +             
 +</code>
informatica/programacion/python/comprimir_descomprimir.1604663954.txt.gz · Última modificación: por tempwin