Cómo utilizar el módulo glob de Python para buscar archivos por patrón

El módulo glob de Python es una herramienta potente para buscar archivos y directorios que coincidan con un patrón específico. Es particularmente útil cuando necesitas buscar archivos con extensiones o nombres específicos en un directorio. Este artículo te guiará en el uso del módulo glob para localizar archivos de manera eficiente.

Introducción al módulo glob

El módulo glob proporciona una forma de listar archivos y directorios utilizando comodines de estilo shell de Unix. Esto resulta útil para tareas como búsquedas de archivos, procesamiento por lotes y más. El módulo incluye funciones que permiten hacer coincidir nombres de archivos con patrones, lo que facilita la administración de archivos.

Uso básico de glob

Para utilizar el módulo glob, deberá importarlo y luego utilizar la función glob.glob() para buscar archivos que coincidan con un patrón. Los patrones que utilice pueden incluir comodines como * (coincide con cualquier número de caracteres) y ? (coincide con un solo carácter).

Ejemplos

Cómo encontrar archivos con una extensión específica

Por ejemplo, para encontrar todos los archivos con la extensión .txt en un directorio, puede utilizar:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

Cómo encontrar archivos en un subdirectorio

Para encontrar todos los archivos con una extensión específica en un subdirectorio, especifique el subdirectorio en el patrón:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

Uso de comodines

Los comodines pueden ayudarle a encontrar una gama más amplia de archivos. Por ejemplo, para buscar todos los archivos de texto que comiencen con "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

Cómo encontrar archivos con múltiples extensiones

También puedes usar glob para buscar archivos con múltiples extensiones utilizando un patrón que incluya múltiples coincidencias de comodines:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

Uso avanzado

Además de los patrones simples, el módulo glob admite patrones más complejos. Por ejemplo, puede utilizar patrones como ** para buscar directorios de forma recursiva.

Búsqueda recursiva

Para buscar archivos de forma recursiva en todos los subdirectorios, utilice el patrón ** junto con el argumento recursive=True:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

Conclusión

El módulo glob es una herramienta esencial para gestionar archivos en Python, que permite buscar archivos mediante patrones con facilidad. Ya sea que trabaje con tipos de archivos específicos, busque en directorios o realice búsquedas complejas, glob ofrece una solución simple y eficaz.