¿Cómo comprimo una carpeta con el módulo Python GZip?

Estoy creando un software de Python que comprime archivos / carpetas … ¿Cómo crearía una sección del código que solicite la entrada del usuario de la ubicación de la carpeta y luego la comprima? Actualmente tengo el código para un solo archivo pero no una carpeta llena de archivos. Por favor explique en detalle cómo hacer esto.

El código para comprimir una carpeta en un archivo tar es:

import tarfile tar = tarfile.open("TarName.tar.gz", "w:gz") tar.add("folder/location", arcname="TarName") tar.close() 

Esto funciona para mi. Espero que eso funcione para ti también.

GZip no hace la compresión de carpetas / directorios, solo archivos individuales. Utilice el módulo zipfile lugar.

No hago UI, así que estás solo para obtener el nombre de la carpeta del usuario. Aquí hay una forma de hacer un archivo comprimido gz comprimido. No responde a las subcarpetas, necesitará algo como os.walk () para eso.

 # assume the path to the folder to compress is in 'folder_path' import tarfile import os with tarfile.open( folder_path + ".tgz", "w:gz" ) as tar: for name in os.listdir( folder_path ): tar.add(name) 

Como dice larsmans, la compresión gzip no se usa para directorios, solo archivos individuales. La forma habitual de hacer cosas con Linux es colocar el directorio en un archivo comprimido primero y luego comprimirlo.