Biblioteca con scripts sencillos de Python

Script de Python 3 comprimir (tar.gz) todas y cada una de las subcarpetas (cuyo nombre termine en "_fin") dentro de una carpeta. Justo a otro script para DEScomprimir los ficheros "tar.gz" encontrados en una ruta.

Tendrás que editar el script y cambiar la ruta de la carpeta raíz que se desea analizar.


import os
import tarfile

# Ruta de la carpeta raíz en la que buscar subcarpetas cuyo nombre termine en "_fin"
root_folder = "/home/jant.encinar/runMDs/prueba-TAR/"

# Extension del nombre de las subcarpetas que queremos buscar
target_folder_suffix = "_fin"

# Recorremos todas las subcarpetas de la carpeta raíz
for foldername in os.listdir(root_folder):
    folderpath = os.path.join(root_folder, foldername)
    # Si la subcarpeta termina con el sufijo deseado
    if foldername.endswith(target_folder_suffix) and os.path.isdir(folderpath):
        # Creamos el nombre del fichero comprimido con el mismo nombre que la subcarpeta
        tarfilename = foldername + ".tar.gz"
        tarfilepath = os.path.join(root_folder, tarfilename)
        # Creamos un fichero comprimido para la subcarpeta
        with tarfile.open(tarfilepath, "w:gz") as tar:
            # Añadimos todos los ficheros y subcarpetas de la subcarpeta al fichero comprimido
            tar.add(folderpath, arcname=os.path.basename(folderpath))

Justo debajo tenemos una segunda versión del script que genera los ficheros "tar.gz" indicados en el fichero fichero de texto "lista-de-carpetas-a-comprimir.txt", que define las subcarpetas de la ruta "/home/jant.encinar/runMDs/007-glue-like-FAS/" que queremos comprimir, originando los ficheros comprimidos en esta misma ruta.

import os
import tarfile

# Ruta de la carpeta contenedora de subcarpetas
ruta_carpeta = "/home/jant.encinar/runMDs/007-glue-like-FAS/"

# Nombre del archivo de texto con la lista de carpetas a comprimir
archivo_lista = "lista-de-carpetas-a-comprimir.txt"

# Abrir el archivo de texto y leer los nombres de las carpetas
with open(archivo_lista, "r") as f:
    nombres_carpetas = f.read().splitlines()

# Recorrer cada nombre de carpeta en la lista
for nombre_carpeta in nombres_carpetas:
    # Componer la ruta completa de la carpeta
    ruta_carpeta_completa = os.path.join(ruta_carpeta, nombre_carpeta)
    
    # Componer el nombre del archivo tar.gz
    nombre_tar_gz = nombre_carpeta + ".tar.gz"
    
    # Componer la ruta completa del archivo tar.gz
    ruta_tar_gz = os.path.join(ruta_carpeta, nombre_tar_gz)
    
    # Abrir el archivo tar.gz y añadir la carpeta
    with tarfile.open(ruta_tar_gz, "w:gz") as tar:
        tar.add(ruta_carpeta_completa, arcname=nombre_carpeta)

Script para descomprimir los ficheros tar.gz que contienen cada uno una subcarpeta, en la ruta

import os
import tarfile

# Este script itera sobre los archivos en la ruta "/home/jant.encinar/runMDs/prueba-TAR/" 
# y verifica si cada archivo termina en ".tar.gz". Si es así, abre el archivo utilizando
# la librería tarfile, extrae su contenido en la misma ruta y cierra el archivo.
# Puedes modificar la ruta según la ubicación donde se encuentran tus archivos ".tar.gz".

ruta = "/home/jant.encinar/runMDs/prueba-TAR/"

for file in os.listdir(ruta):
    if file.endswith(".tar.gz"):
        tar = tarfile.open(os.path.join(ruta, file), "r:gz")
        tar.extractall(ruta)
        tar.close()



Última modificación: