PYTHON – DÍA 5

Ficheros y logs: leer, escribir y procesar datos


1. Objetivo del día

Aprender a:

  • leer ficheros de texto
  • escribir y crear ficheros
  • abrir archivos en distintos modos (r, w, a)
  • procesar líneas
  • generar logs simples
  • manejar rutas del sistema

Este es un día muy útil: a partir de aquí podrás crear scripts reales que lean configuraciones, generen informes o registren actividad.


2. Teoría esencial (5–10 minutos)

2.1. Abrir un fichero

La función estándar es:

f = open("archivo.txt", "modo")

Modos más usados:

  • "r" → leer (read)
  • "w" → escribir (write) y sobrescribe el archivo
  • "a" → añadir al final (append)
  • "r+" → leer y escribir

Cerrar un fichero:

f.close()

2.2. Uso recomendado: with open()

Evita olvidar el .close():

with open("archivo.txt", "r") as f:
    contenido = f.read()

Al salir del bloque, el archivo se cierra solo.


2.3. Leer contenido línea por línea

with open("archivo.txt", "r") as f:
    for linea in f:
        print(linea.strip())

strip() elimina saltos de línea y espacios innecesarios.


2.4. Escribir texto

with open("salida.txt", "w") as f:
    f.write("Primer registro\n")

2.5. Añadir líneas al final

with open("salida.txt", "a") as f:
    f.write("Nueva línea añadida\n")

2.6. Rutas del sistema

import os

directorio = os.getcwd()
lista_archivos = os.listdir()

3. Práctica guiada (aprox. 50 minutos)

3.1. Crear un fichero de prueba

nano datos.txt

Contenido manual:

admin
monitor
devops
invitado

3.2. Leer todo el contenido

nano leer_todo.py

Contenido:

with open("datos.txt", "r") as f:
    contenido = f.read()

print(contenido)

Ejecutar:

python3 leer_todo.py

3.3. Leer línea por línea

nano leer_lineas.py

Contenido:

with open("datos.txt", "r") as f:
    for linea in f:
        print("Usuario:", linea.strip())

3.4. Escribir en un fichero nuevo

nano escribir.py

Contenido:

with open("salida.txt", "w") as f:
    f.write("Primer log generado.\n")
    f.write("Este archivo ha sido creado por Python.\n")

Ejecutar y comprobar:

python3 escribir.py
cat salida.txt

3.5. Añadir líneas (modo append)

nano anadir.py

Contenido:

with open("salida.txt", "a") as f:
    f.write("Nueva entrada añadida.\n")

Ejecuta varias veces y observa cómo crece el archivo.


3.6. Procesar datos de un fichero

Crear:

nano procesar.py

Contenido:

usuarios = []

with open("datos.txt", "r") as f:
    for linea in f:
        usuarios.append(linea.strip())

print("Usuarios cargados:", usuarios)
print("Total:", len(usuarios))

3.7. Generar un log profesional (mini)

nano log_simple.py

Contenido:

import datetime

def escribir_log(mensaje):
    fecha = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    linea = f"[{fecha}] {mensaje}\n"

    with open("actividad.log", "a") as f:
        f.write(linea)

escribir_log("Inicio del script")
escribir_log("Proceso completado con éxito")

Ejecuta varias veces y revisa actividad.log.


3.8. Listar archivos y rutas

nano rutas.py

Contenido:

import os

print("Directorio actual:", os.getcwd())

print("Archivos aquí:")
for nombre in os.listdir():
    print("-", nombre)

4. Checklist del Día 5

  • Has leído un fichero completo
  • Has leído línea por línea
  • Has escrito un fichero usando "w"
  • Has añadido contenido con "a"
  • Has procesado datos desde un fichero
  • Has creado un mini log con timestamp
  • Has usado funciones del módulo os

5. Errores frecuentes

ProblemaSolución
Archivo no encontradoVerifica ruta y nombres exactos
Problemas con UTF-8Añadir encoding="utf-8" si es necesario
Sobrescribir sin querer un archivoRecuerda que "w" borra lo anterior
PermissionErrorEjecutar desde un directorio donde tengas permisos
Leer líneas con saltos extrañosUsar .strip()

6. Ejercicio opcional (con solución aparte)

Crear un script llamado analizador_logs.py que:

  1. Lea el archivo actividad.log
  2. Cuente cuántas entradas hay
  3. Busque si aparece la palabra “error” (ignorando mayúsculas/minúsculas)
  4. Muestre un resumen final, por ejemplo:
Entradas totales: 12
Entradas con 'error': 3
Última línea del log: [2025-02-10 20:33:19] Inicio del sistema

Nota: El archivo actividad.log se genera automáticamente cuando ejecutas el script log_simple.py en este mismo día. Puedes abrirlo con cualquier editor para ver su contenido antes de analizarlo.

La solución estará en:
Soluciones propuestas


7. Día 5 completado

Ya sabes trabajar con ficheros, logs, rutas y lectura/escritura de datos.
Esto te da poder para automatizar tareas reales como:

  • procesar logs
  • generar reportes
  • leer listas de usuarios/servidores
  • crear pequeños sistemas de auditoría

En el Día 6, veremos librerías esenciales para sysadmin/devops, como os, sys, json, subprocess.

Ìndice Curso PythonAnterior Día 4Siguiente Día 6

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies