Paquetes y módulos
Paquetes, módulos y práctica con scripts CLI
Objetivo:
Aprender a organizar y ejecutar código como aplicaciones pequeñas.
Contenidos
- Importación y uso de módulos: Uso de
importyfrom ... importpara reutilizar código y dividir proyectos en partes. - Creación de scripts CLI (Command Line Interface): Programas que se ejecutan desde la terminal y pueden pedir datos al usuario.
- Ejercicios prácticos:
- Calculadora básica.
- Script que lee un archivo y muestra resultados.
- Script que llama una API sencilla (por ejemplo, clima o moneda).
Resultado esperado:
El alumno entiende cómo crear programas completos y ejecutarlos desde la terminal.
1. Conceptos fundamentales
¿Qué es un módulo?
Un módulo es un archivo de Python (.py) que contiene funciones, clases o variables. Sirve para organizar el código y reutilizarlo en otros programas.
# archivo: matematicas.py
def sumar(a, b):
return a + b
# archivo: main.py
import matematicas
resultado = matematicas.sumar(3, 5)
print(resultado) # 8
¿Qué es un paquete?
Un paquete es una carpeta que agrupa varios módulos y contiene un archivo especial llamado __init__.py.
🧩 Estructura completa del paquete
mi_app/ │ ├── __init__.py ├── operaciones/ │ ├── __init__.py │ ├── suma.py │ └── resta.py └── main.py
📄 Archivo: operaciones/suma.py
def sumar(a, b):
"""Devuelve la suma de dos números."""
return a + b
📄 Archivo: operaciones/resta.py
def restar(a, b):
"""Devuelve la resta de dos números."""
return a - b
📄 Archivo: main.py
from operaciones.suma import sumar
from operaciones.resta import restar
resultado_suma = sumar(2, 3)
resultado_resta = restar(5, 1)
print(f"Resultado de la suma: {resultado_suma}")
print(f"Resultado de la resta: {resultado_resta}")
🏃♂️ Cómo ejecutarlo:
- Crea la carpeta
mi_appcon toda la estructura anterior. - Abre una terminal en esa carpeta.
- Ejecuta el script principal:
python main.py
Salida esperada:
Resultado de la suma: 5 Resultado de la resta: 4
Ejemplo 2: Script que lee un archivo de texto
def leer_archivo(ruta):
try:
with open(ruta, "r", encoding="utf-8") as archivo:
contenido = archivo.read()
print("Contenido del archivo:")
print(contenido)
except FileNotFoundError:
print("Error: el archivo no existe.")
if __name__ == "__main__":
import sys
if len(sys.argv) != 2:
print("Uso: python leer_archivo.py [nombre_archivo]")
else:
leer_archivo(sys.argv[1])
Ejemplo 3: Script que llama una API pública
import requests
import sys
def obtener_clima(ciudad):
url = f"https://wttr.in/{ciudad}?format=3"
respuesta = requests.get(url)
if respuesta.status_code == 200:
print(respuesta.text)
else:
print("Error al obtener el clima.")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Uso: python clima.py [nombre_ciudad]")
else:
obtener_clima(sys.argv[1])
Uso:
python clima.py Madrid
3. Buenas prácticas
- Nombrar los módulos y funciones en minúsculas.
- Evitar código repetido: usar módulos reutilizables.
- Usar
if __name__ == "__main__":en todos los scripts principales. - Trabajar con entornos virtuales (
venv). - Documentar con comentarios y docstrings.
4. Resultado esperado
- Organiza el código en módulos y paquetes.
- Crea aplicaciones ejecutables desde la terminal.
- Maneja entradas y salidas (archivos y APIs).
- Desarrolla proyectos pequeños y reutilizables.
5. Actividades de refuerzo
- Crear un paquete con funciones de texto.
- Mejorar la calculadora usando
argparse. - Hacer un CLI que consulte una API pública (ej: tipo de cambio).
- Subir el script a GitHub y probarlo en otro equipo.
📘 Aquí tienes el notebook listo para cargar directamente en Google Colab:
Descargar parte_5_paquetes_y_CLI.ipynb
Incluye todos los ejemplos de la Parte 5:
- Módulos y paquetes
- Calculadora CLI
- Lectura de archivos
- Script con API de clima
Puedes abrirlo en Google Colab y subir el archivo para ejecutarlo paso a paso.
IMPORTANTE: Para que tu progreso quede registrado y puedas avanzar en el curso, recuerda hacer clic en el botón «Completar» al terminar esta lección.
- Solo al marcar la lección como completada se desbloquearán las siguientes lecciones.
- Es necesario marcar todas las lecciones de este módulo como completadas para poder pasar al Módulo 02.
Cuando termines de revisar el contenido, baja hasta el final de la página y haz clic en «Completar» antes de continuar.