0Pricing
Python Academy · Lección

Globbing e iteración

Encuentre archivos con patrones glob

Globbing e iteración es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Buscar archivos

pathlib facilita enumerar el contenido de los directorios y buscar archivos que coincidan con un patrón. Los métodos principales son iterdir, glob y rglob.

Configurar un árbol de ejemplo

Para explorar estos métodos, primero crearemos un directorio pequeño con varios archivos. Esta configuración utiliza únicamente la biblioteca estándar.

from pathlib import Path

root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')

iterdir enumera el contenido

iterdir() devuelve cada entrada situada directamente dentro de un directorio, una Path por elemento.

from pathlib import Path

root = Path('sample')
for entry in sorted(root.iterdir()):
    print(entry.name)

glob con un patrón

glob() busca entradas que coincidan con un patrón de estilo shell. El comodín * coincide con cualquier secuencia de caracteres.

from pathlib import Path

root = Path('sample')
for txt in sorted(root.glob('*.txt')):
    print(txt.name)

Comodín de un solo carácter

El comodín ? coincide exactamente con un carácter, lo que resulta útil para nombres de longitud fija.

from pathlib import Path

root = Path('sample')
for m in sorted(root.glob('?.txt')):
    print(m.name)

Rangos de caracteres

Los corchetes coinciden con cualquier carácter de un conjunto o rango, igual que en los patrones glob del shell.

from pathlib import Path

root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
    print(m.name)

glob recursivo con rglob

rglob() busca en un directorio y en todos sus subdirectorios. Equivale a glob('**/pattern').

from pathlib import Path

root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
    print(m)

Contar coincidencias

Los resultados de glob son iteradores. Envuélvalos en list() para contar o reutilizar las coincidencias.

from pathlib import Path

root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')

Filtrar durante la iteración

Combine los patrones glob con las comprobaciones is_file o is_dir para filtrar los resultados con precisión.

from pathlib import Path

root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
    print(f.name)

Procesar los archivos encontrados

Una vez que tenga las coincidencias, puede leer cada archivo. Aquí sumaremos el contenido de todos los archivos de texto del árbol.

from pathlib import Path

root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
    text = p.read_text().strip()
    if text.isdigit():
        total += int(text)
print('total:', total)

Ordenar los resultados de glob

Glob no garantiza ningún orden concreto. Envuelva los resultados en sorted() cuando necesite una salida determinista, por ejemplo, al generar un informe.

from pathlib import Path

root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
    print(p.name)

Comprobación rápida

¿Cuál es la diferencia entre glob y rglob?

Resumen

Ha aprendido a buscar archivos con patrones glob.

  • iterdir enumera el contenido directo.
  • glob busca coincidencias con un patrón (*, ?, [...]).
  • rglob realiza búsquedas recursivas.
  • Combine los patrones glob con los filtros is_file/is_dir y lea las coincidencias.

Preguntas frecuentes

¿La lección «Globbing e iteración» es gratis?

Sí — el texto completo de «Globbing e iteración» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Globbing e iteración»?

Encuentre archivos con patrones glob Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Globbing e iteración»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El objeto Path
  2. Lectura y escritura de archivos
  3. Globbing e iteración
  4. Manipulación de rutas
← Volver a Python Academy