afegit folder_zip_to_cso.py
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import os
|
||||
import zipfile
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def procesar_archivos(carpeta):
|
||||
"""
|
||||
Procesa los archivos .zip de una carpeta, convirtiéndolos en .cso.
|
||||
Omite archivos .zip corruptos y solo elimina los que han sido procesados exitosamente.
|
||||
"""
|
||||
# Recorre todos los archivos de la carpeta
|
||||
for archivo in os.listdir(carpeta):
|
||||
if archivo.endswith('.zip'):
|
||||
ruta_zip = os.path.join(carpeta, archivo)
|
||||
|
||||
# Crear una carpeta temporal para descomprimir
|
||||
carpeta_temporal = os.path.join(carpeta, 'temp')
|
||||
os.makedirs(carpeta_temporal, exist_ok=True)
|
||||
|
||||
try:
|
||||
# Intentar descomprimir el archivo .zip
|
||||
with zipfile.ZipFile(ruta_zip, 'r') as zip_ref:
|
||||
zip_ref.extractall(carpeta_temporal)
|
||||
except zipfile.BadZipFile:
|
||||
print(f'Archivo corrupto, no se puede procesar: {ruta_zip}')
|
||||
continue # Saltar al siguiente archivo
|
||||
|
||||
# Procesar cada archivo descomprimido en la carpeta temporal
|
||||
for archivo_salida in os.listdir(carpeta_temporal):
|
||||
ruta_archivo_salida = os.path.join(carpeta_temporal, archivo_salida)
|
||||
ruta_cso = os.path.join(carpeta, os.path.splitext(archivo_salida)[0] + '.cso')
|
||||
|
||||
# Comprimir con "ciso 9"
|
||||
comando = ['ciso', '9', ruta_archivo_salida, ruta_cso]
|
||||
resultado = subprocess.run(comando)
|
||||
|
||||
# Si la compresión fue exitosa, eliminar el fichero zip original
|
||||
if resultado.returncode == 0:
|
||||
os.remove(ruta_zip)
|
||||
print(f'Archivo comprimido y .zip original eliminado: {ruta_zip}')
|
||||
else:
|
||||
print(f'Error al comprimir: {ruta_archivo_salida}')
|
||||
|
||||
# Eliminar la carpeta temporal
|
||||
shutil.rmtree(carpeta_temporal)
|
||||
print(f'Procesado: {ruta_zip}')
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Verificar que se pase la ruta como parámetro
|
||||
if len(sys.argv) < 2:
|
||||
print("Uso: python script.py <ruta_de_la_carpeta>")
|
||||
sys.exit(1)
|
||||
|
||||
# Obtener la ruta desde los argumentos del programa
|
||||
carpeta = sys.argv[1]
|
||||
|
||||
# Comprobar si la carpeta existe
|
||||
if not os.path.isdir(carpeta):
|
||||
print(f'Error: La carpeta especificada no existe: {carpeta}')
|
||||
sys.exit(1)
|
||||
|
||||
# Llamar a la función para procesar archivos
|
||||
procesar_archivos(carpeta)
|
||||
|
||||
Reference in New Issue
Block a user