Aprende Python creando tu propio contador de palabras
Una de las mejores formas de iniciarte en el mundo del desarrollo con Python es mediante la creación de scripts prácticos y reutilizables. Hoy vamos a explorar un ejemplo sencillo pero poderoso: un contador de palabras que analiza archivos de texto.
Este script no solo enseña los fundamentos de Python, sino que también introduce buenas prácticas como uso de módulos estándar, expresiones regulares y estructuras de control.
🔍 ¿Qué hace el script?
El objetivo del script es leer un archivo de texto, contar la frecuencia de cada palabra (ignorando mayúsculas, minúsculas y símbolos especiales), y mostrar los resultados ordenados por frecuencia de uso.
🧱 Paso a paso
import os
from collections import Counter
import re
- os: para verificar si el archivo existe.
- Counter: estructura que cuenta elementos rápidamente.
- re: expresiones regulares para limpiar y extraer palabras.
💬 Función principal
def count_words(filename):
with open(filename, 'r', encoding='utf-8') as file:
words = []
for line in file:
line_words = re.findall(r'\b\w+\b', line.lower())
words.extend(line_words)
word_count = Counter(words)
for word, count in word_count.most_common():
print(f"{word}: {count}")
- Lee el archivo línea por línea.
- Convierte todo a minúsculas.
- Usa una expresión regular para encontrar solo palabras.
- Usa Counter para contar cuántas veces aparece cada palabra.
- Muestra los resultados ordenados por frecuencia.
🚀 Bloque principal
if __name__ == "__main__":
filename = 'lewis.txt'
if os.path.exists(filename):
count_words(filename)
else:
print(f"File '{filename}' does not exist.")
🌟 ¿Por qué es útil para principiantes?
- Te obliga a pensar en flujos de entrada/salida.
- Introduce el manejo de errores de forma simple (os.path.exists).
- Trabaja con archivos de texto, una tarea común en cualquier ámbito.
- Te enseña a usar herramientas potentes como Counter y re.
🧠 Conclusión
Este tipo de script es ideal para quienes empiezan con Python porque combina varios conceptos esenciales en menos de 30 líneas de código. Además, ¡puedes adaptarlo fácilmente para otros fines como análisis de logs, procesamiento de datos o creación de herramientas de línea de comandos!
¿Y tú, qué vas a automatizar hoy? 💡