Python incluye una colección robusta de módulos integrados que permiten resolver problemas frecuentes sin necesidad de instalar librerías externas. Desde consultar información del sistema operativo hasta buscar patrones en texto o calcular frecuencias en listas, estos módulos son herramientas esenciales para cualquier desarrollador que quiera escribir código más eficiente y organizado.
¿Qué es un módulo en Python y por qué importa?
Un módulo en Python es simplemente un archivo con extensión .py que contiene funciones, clases o variables reutilizables. El lenguaje ya viene con múltiples módulos listos para usar, como functools (que se utiliza, por ejemplo, para la función reduce) o random para generar números aleatorios [00:30]. La ventaja principal es que permiten modularizar la aplicación, separando la lógica en diferentes archivos y manteniendo el código limpio.
Para usar cualquier módulo basta con la instrucción import seguida del nombre del módulo. A partir de ahí se accede a sus funciones con la notación de punto.
¿Cómo obtener información del sistema con sys?
El módulo sys permite consultar detalles sobre el sistema operativo y el entorno de ejecución [01:05]. Un uso común es sys.path, que devuelve una lista con todas las rutas donde Python busca módulos:
python
import sys
print(sys.path)
- El primer elemento de esa lista indica la ubicación actual del archivo en ejecución.
- Observar la estructura de directorios ayuda a identificar el sistema operativo; por ejemplo, la presencia de
/home indica un sistema Unix [01:50].
¿Cómo buscar patrones en texto con expresiones regulares?
El módulo re proporciona soporte para expresiones regulares, una sintaxis transversal que funciona igual en Python, JavaScript, C o Rust [02:30]. Son extremadamente poderosas para buscar coincidencias dentro de cadenas de texto.
python
import re
texto = "Mi número de teléfono es 3112312121 y el código del país es 57. Mi número de la suerte es el 3"
resultado = re.findall('[0-9]+', texto)
print(resultado)
[0-9]+ es la expresión regular que indica: "encuentra uno o más dígitos consecutivos".
findall recorre todo el texto y retorna una lista con todas las coincidencias [03:25].
- En el ejemplo, el resultado sería algo como
['3112312121', '57', '3'].
Las expresiones regulares tienen su propia sintaxis y merecen estudio dedicado, pero el módulo re facilita su integración directa en cualquier proyecto Python.
¿Cómo manejar fechas y horas con el módulo time?
El módulo time permite trabajar con marcas temporales y formatear fechas de forma legible [04:00].
python
import time
timestamp = time.time()
print(timestamp)
local = time.localtime()
result = time.asctime(local)
print(result)
time.time() devuelve el timestamp actual en formato Unix, un número largo que representa los segundos transcurridos desde el 1 de enero de 1970.
time.localtime() obtiene la hora local del servidor donde se ejecuta el código.
time.asctime() convierte esa hora local a un formato ASCII legible para humanos, como Mon Jun 10 14:30:00 2024 [05:10].
Es importante recordar que la fecha obtenida corresponde al servidor de ejecución, no necesariamente a la máquina del usuario.
¿Cómo calcular frecuencias en listas con collections?
El módulo collections ofrece estructuras de datos especializadas. Una de las más útiles es Counter, que calcula la frecuencia de cada elemento en una lista [05:55].
python
import collections
numbers = [1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 21]
counter = collections.Counter(numbers)
print(counter)
Counter retorna un diccionario donde cada clave es un elemento y su valor es la cantidad de veces que aparece.
- Para el ejemplo anterior, el resultado muestra que el
1 aparece cuatro veces, el 2 y el 3 dos veces cada uno, y el 4, 5 y 21 una sola vez [06:30].
Esta herramienta resulta ideal para análisis de datos rápidos sin necesidad de escribir bucles manuales.
Python ofrece estos módulos integrados como punto de partida, pero también es posible crear módulos propios para organizar mejor el código de cualquier proyecto. ¿Ya has utilizado alguno de estos módulos en tus proyectos? Comparte tu experiencia en los comentarios.