10. Manipulación de Información y POO
📁 1. Manejo de Archivos (Persistencia)
Hasta ahora, los datos se borraban al cerrar el programa. Con open(), los guardamos en el disco duro.
Modos principales:
'r'(lectura),'w'(escritura, borra lo anterior),'a'(añadir al final).La sentencia
with: Es la forma profesional de abrir archivos. Se asegura de cerrar el archivo automáticamente incluso si el script falla. Evita que los archivos se corrompan.Ejemplo:
with open("logs.txt", "r") as f:
📊 2. Formatos de Intercambio (CSV y JSON)
En administración de sistemas, casi nunca leerás un .txt plano, sino formatos estructurados:
CSV (Comma Separated Values): Ideal para hojas de cálculo e inventarios de equipos. Se usa la librería
csv.JSON (JavaScript Object Notation): El estándar para APIs y archivos de configuración (como los de VS Code). Se usa la librería
json.
🏗️ 3. Programación Orientada a Objetos (POO)
La POO permite modelar elementos del mundo real (un PC, un Router, un Usuario) como "objetos" de código.
Clase: Es el "plano" o plantilla (ej: El diseño de un modelo de Portátil).
Objeto / Instancia: El aparato físico real creado a partir del plano.
Atributos: Las características (IP, Marca, Almacenamiento).
Métodos: Las acciones que puede hacer (encender, reiniciar, formatear).
🧬 4. Herencia y Polimorfismo
Herencia: Crear una clase "Hija" que hereda todo de la "Padre".
Ejemplo: Una clase
Dispositivo(Padre) y una claseImpresora(Hija). La impresora hereda el atributoIP, pero añade el atributotinta.
Polimorfismo: La capacidad de que diferentes clases tengan un método con el mismo nombre pero que se comporten distinto.
Ejemplo: El método
configurar()hará cosas distintas si el objeto es unRoutero unSwitch.
💡 Ejemplo aplicado: Modelando un Servidor
class Servidor:
def __init__(self, nombre, ip):
self.nombre = nombre # Atributo
self.ip = ip
def hacer_ping(self): # Método
print(f"Haciendo ping a {self.nombre} en la IP {self.ip}...")
# Crear una instancia (Objeto)
mi_web = Servidor("Web_Principal", "192.168.1.50")
mi_web.hacer_ping()
🛠️ Actividad práctica
El Log de Eventos (Archivos):
Crea un script que pida al usuario una incidencia técnica.
Guárdala en un archivo llamado
incidencias.txtusandowith open(...)y el modo'a'.Cada incidencia debe guardarse en una línea nueva.
Exportador de Inventario (JSON):
Crea un diccionario con los datos de tu PC (CPU, RAM, Disco).
Usa la librería
jsonpara guardar ese diccionario en un archivo llamadomi_pc.json.Abre el archivo con el Bloc de Notas para comprobar que se ha guardado correctamente.
Jerarquía de Red (POO):
Define una clase padre
Equipocon el atributohostname.Crea una clase hija
Servidorque herede deEquipoy añada el atributopuerto.Crea una clase hija
PC_Usuarioque herede deEquipoy añada el atributousuario_actual.Instancia un objeto de cada clase e imprime sus datos.