primer comit
This commit is contained in:
58
limpiar_recibos_viejos.py
Executable file
58
limpiar_recibos_viejos.py
Executable 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()
|
Reference in New Issue
Block a user