Python

Recordando Python: Volviendo a programar

Nunca fui programador profesional ni nada parecido, pero ya hace casi 10 años encontré en Python un lenguaje ligero, fácil de aprender y suficientemente potente para scripting y automatización de tareas que era lo que buscaba. Desde eso dejé de programar y me dediqué a mi rol de ingeniero de networking.

Como buen admirador del gran discurso de Steve Jobs en Stanford creo mucho en que los puntos siempre se unen, y es muy difícil unir los puntos hacia delante. La programabilidad de las redes y la infraestructura de tecnología en general pasa mucho por Python y por ansible y serán cosas que veremos cada vez más seguido en el kit de skills del ingeniero de redes del futuro ¿o presente?

Este post es la vuelta a mis intentos de programar con Python, no quiero ser un desarrollador, pero sí afilar el hacha para usar las bondades del scripting para automatizar recolección de información o algunas configuraciones a equipamiento de internetworking. Así se empiezan a unir los puntos. Este debería ser el primero de una serie de post que van de la programación en general a la programación del networking.

Mi primer script después de 10 años

Lo más importante de programar es encontrar casos de uso que sean suficientemente interesantes para automatizarlos. 

Explico mi necesidad: soy de los que usa una carpeta «Temp» en el escritorio. Descargo todo lo que considero que sea temporal o importante por un tiempo pero completamente dispensables en el futuro. Estos pueden ser PDFs, datasheets, o cualquier archivo que necesito para algo puntual y después borro todo el contenido de la carpeta. Por lo general me olvido de borrar la carpeta hasta que tengo problemas de almacenamiento en mis discos duros. Y eso es lo que intento automatizar en este pequeño script con Python.

Entiendo que podría usar bash o algunos otros métodos que resuelven la necesidad. Quiero usar Python y algo de lógica o If/Where para recordar todo ese mundo.

Mi código:

import os
import time
import datetime
folder = "C:\\Users\\juanc\\Desktop\\Temp\\" #archivo
os.chdir(folder)
contenido = os.listdir()
formatofecha="%c"
obsoleto=5 #dias hacia atras
hoy=datetime.datetime.today()
    
for contenido in contenido:
    creaciondelarchivo=datetime.datetime.strptime(time.ctime(os.path.getmtime(contenido)),formatofecha)
    nombredelarchivo = os.path.split(contenido)
    print(nombredelarchivo,'fecha de creación del archivo',creaciondelarchivo)
    if (hoy-creaciondelarchivo).days>obsoleto:
        print('se borra')
        os.remove(contenido) #borrar archivos
    else:
        print('no se borra') #no hace nada

Lo que hace el FOR es mirar cada uno de los archivos de la carpeta TEMP en la variable FOLDER, en el IF validamos si cada archivo fue creado hace más de 5 días para considerarlo OBSOLETO y que se borre con la función os.remove(contenido).

En resumen, python mira en la carpeta TEMP si los archivos tienen más de 5 días de su creación/modificación y los borra si así fuera.

Entiendo que hay varias maneras de hacer esto mismo, pero para un proyecto de programación de sábado por la noche en cuarentena creo que vale.

El reinventarnos y adquirir conocimiento constantemente tiene que ser parte de nuestro mindset. 
¿Qué nuevas habilidades está adquiriendo o recordando?

About the author

Soy Ingeniero en Redes, arquitecto de soluciones de TI, MBA con especialidad en gestión comercial. Tengo certificaciones a nivel profesional en Cloud Computing y Networking de diferentes marcas como Microsoft, Cisco y Amazon AWS.