Errores y archivos
Los errores son parte normal del desarrollo. Tu tarea es leerlos, aislar la causa y decidir si debes corregir el codigo o manejar una situacion esperada.
Leer un traceback
Sección titulada «Leer un traceback»numero = int("hola")Error:
ValueError: invalid literal for int() with base 10: 'hola'Traduccion: intentaste convertir "hola" a entero, pero no representa un numero.
try y except
Sección titulada «try y except»def convertir_a_entero(texto): try: return int(texto) except ValueError: return None
print(convertir_a_entero("42"))print(convertir_a_entero("hola"))Salida:
42NoneRetorno: devuelve int si puede convertir; devuelve None si el texto no es numerico.
No tapes todos los errores
Sección titulada «No tapes todos los errores»Evita esto:
try: resultado = 10 / 0except Exception: print("algo fallo")Es mejor capturar el error especifico:
try: resultado = 10 / 0except ZeroDivisionError: print("no se puede dividir entre cero")Escribir archivos
Sección titulada «Escribir archivos»with open("notas.txt", "w", encoding="utf-8") as archivo: archivo.write("Aprender Python\n") archivo.write("Practicar funciones\n")Esto crea o reemplaza notas.txt.
Leer archivos
Sección titulada «Leer archivos»with open("notas.txt", "r", encoding="utf-8") as archivo: contenido = archivo.read()
print(contenido)Salida:
Aprender PythonPracticar funcionesLeer linea por linea
Sección titulada «Leer linea por linea»with open("notas.txt", "r", encoding="utf-8") as archivo: for linea in archivo: print(linea.strip())strip() elimina saltos de linea y espacios en los extremos.
Guardar datos simples
Sección titulada «Guardar datos simples»def guardar_tareas(tareas, ruta): with open(ruta, "w", encoding="utf-8") as archivo: for tarea in tareas: archivo.write(f"{tarea}\n")
def cargar_tareas(ruta): tareas = []
with open(ruta, "r", encoding="utf-8") as archivo: for linea in archivo: tareas.append(linea.strip())
return tareas
guardar_tareas(["leer", "practicar"], "tareas.txt")print(cargar_tareas("tareas.txt"))Salida:
['leer', 'practicar']Retornos: guardar_tareas(...) devuelve None; cargar_tareas(...) devuelve list[str].
Para estructuras como listas y diccionarios, JSON es mas comodo que texto plano.
import json
usuario = {"nombre": "Nora", "puntos": 80}
with open("usuario.json", "w", encoding="utf-8") as archivo: json.dump(usuario, archivo, indent=2)
with open("usuario.json", "r", encoding="utf-8") as archivo: usuario_cargado = json.load(archivo)
print(usuario_cargado["puntos"])Salida:
80Practica
Sección titulada «Practica»Crea una funcion sumar_numeros_desde_archivo(ruta) que lea un numero por linea y devuelva la suma. Si una linea no es numerica, ignorala.