primer comit

This commit is contained in:
2025-08-16 04:19:00 -03:00
commit ce8c3f8bb5
2 changed files with 130 additions and 0 deletions

58
limpiar_recibos_viejos.py Executable file
View File

@ -0,0 +1,58 @@
import os
import glob
from datetime import datetime
def limpiar_recibos_por_mes_final():
"""
Elimina los recibos de sueldo antiguos, conservando todos los recibos
de los últimos 5 meses.
"""
directorio_recibos = '/mnt/bases_isis/Recibos_sueldo/'
patron_archivos = os.path.join(directorio_recibos, 'Recibo_*.pdf')
# Calcular el periodo límite (YYYYMM) de hace 5 meses
hoy = datetime.now().date()
año_actual = hoy.year
mes_actual = hoy.month
mes_limite = mes_actual - 5
año_limite = año_actual
if mes_limite <= 0:
mes_limite += 12
año_limite -= 1
periodo_limite = f"{año_limite:04d}{mes_limite:02d}"
print(f"## LIMPIEZA DE RECIBOS ANTIGUOS (LÓGICA DE 5 MESES) ##")
print(f"Se conservarán los recibos desde el periodo {periodo_limite} en adelante.")
todos_los_archivos = glob.glob(patron_archivos)
archivos_para_borrar = []
archivos_borrados_count = 0
for path_archivo in todos_los_archivos:
try:
nombre_archivo = os.path.basename(path_archivo)
periodo_archivo = nombre_archivo.split('_')[3]
if periodo_archivo < periodo_limite:
archivos_para_borrar.append(path_archivo)
except IndexError:
# Ignorar archivos con formato de nombre inesperado
continue
if archivos_para_borrar:
print("\nBorrando los siguientes archivos:")
for path_a_borrar in sorted(archivos_para_borrar):
try:
os.remove(path_a_borrar)
print(f"Borrado: {path_a_borrar}")
archivos_borrados_count += 1
except OSError as e:
print(f"ERROR: No se pudo borrar el archivo '{path_a_borrar}': {e}")
print(f"\nLimpieza completada. Se han borrado {archivos_borrados_count} recibos antiguos.")
else:
print("\nNo se encontraron recibos para borrar. Todos los recibos son de los últimos 5 meses.")
if __name__ == "__main__":
limpiar_recibos_por_mes_final()