Los módulos son archivos que contienen código Python, y puedes importarlos en otros archivos o scripts utilizando la declaración import.
import mathresultado = math.sqrt(16)
También puedes importar funciones o variables específicas de un módulo usando la sintaxis from ... import ....
from math import sqrt, piresultado = sqrt(3 * pi)
Módulos estándar
Python viene con una biblioteca estándar que incluye muchos módulos útiles, los cuales ofrecen funciones y clases para realizar tareas comunes.
import osos.listdir(".") # lista los archivos en el directorio actual
Algunos de los módulos más utilizados son:
math: Proporciona funciones matemáticas como trigonometría, logaritmos y exponenciales.
random: Generación de números aleatorios y funciones relacionadas con la aleatoriedad.
datetime: Manejo de fechas y horas, incluyendo operaciones de formato y aritmética de tiempo.
os: Interacción con el sistema operativo, como la manipulación de rutas de archivos y la ejecución de comandos del sistema.
re: Soporte para expresiones regulares, permitiendo la búsqueda y manipulación de cadenas de texto.
json: Serialización y deserialización de objetos JSON, facilitando la conversión entre estructuras de datos de Python y cadenas JSON.
csv: Facilita la lectura y escritura de archivos CSV, permitiendo la manipulación de datos tabulares.
collections: Contiene estructuras de datos adicionales como namedtuple, deque, y Counter.
urllib: Conjunto de módulos para trabajar con URLs, como la recuperación de datos de Internet.
Todos estos módulos están detallados en la documentación de Python.
Módulos y paquetes propios
Puedes crear tus propios módulos simplemente escribiendo un archivo Python con el código que deseas incluir. Luego, puedes importarlo usando el nombre del archivo (sin la extensión .py).
Un paquete es una colección de módulos organizados en una jerarquía de directorios. Cada directorio dentro de un paquete puede contener un archivo especial llamado __init__.py. Este archivo se encarga de ejecutar código al cargar el módulo, y puede usarse para establecer constantes, exportar funciones de módulos internos, etc.
Estructura de ejemplo:
mipaquete/ __init__.py modulo1.py modulo2.py
Puedes importar módulos desde el paquete:
from mipaquete import modulo1
O importar directamente una función dentro de un módulo
from mipaquete.modulo1 import mi_funcion
Carga de paquetes desde otros directorios
Si deseas importar un paquete que no se encuentra en la misma carpeta donde está el código donde quieres utilizarlo, puedes usar la variable de entorno PYTHONPATH para indicarle a Python dónde buscar los paquetes.
# establece la variable PYTHONPATH para que Python busque los paquetesexport PYTHONPATH=~/librerias/mi_paquete# luego de esto, es posible ejecutar un script que haga uso del paquete, aunque no esté en la misma ubicaciónpython mi_script.py
Imports y ámbito global
Al importar un elemento de un módulo de Python, todo el módulo se ejecutará. Esto significa que cualquier código en el ámbito global del módulo (es decir, código que no está encapsulado dentro de una función o clase) también se ejecutará. Esta ejecución automática del ámbito global puede llevar a efectos secundarios no deseados, por lo que se sugiere minimizar el uso de código en dicho ámbito.
Scripts y Programas Principales
Cuando el objetivo es diseñar un archivo Python para actuar como un programa principal o “script”, es posible que desees colocar código en el ámbito global para que se ejecute intencionalmente. No obstante, una práctica más segura es emplear el bloque if __name__ == '__main__':. El código dentro de este bloque se ejecutará solo si el archivo se ejecuta como el script principal y no se ejecutará cuando el módulo se importe en otro archivo.
# Esto se ejecutará siempreprint("Esto se imprimirá siempre, incluso durante la importación.")def mi_funcion(): print("Esta es una función útil.")# Esto solo se ejecutará si el módulo es el script principalif __name__ == "__main__": print("Esto solo se imprimirá si se ejecuta el módulo directamente.")