Código fuente: Lib/glob.py

El módulo globencuentra todos los nombres de ruta que coinciden con un patrón especificadosegún las reglas utilizadas por el shell de Unix, aunque los resultados se devuelven en un orden arbitrario. No se realiza ninguna expansión de tildes, pero *, ? y los rangos de caracteres expresados con serán correctamente comparados. Esto se hace mediante el uso de las funciones os.scandir() y fnmatch.fnmatch() en conjunto, y no invocando realmente una subestructura. Tenga en cuenta que, a diferencia de fnmatch.fnmatch(), glob trata los nombres de archivo que comienzan con un punto (.) como casos especiales. (Para la expansión de tildes y variables de shell, utilice os.path.expanduser() yos.path.expandvars().)

Para una coincidencia literal, envuelva los metacaracteres entre paréntesis.Por ejemplo, '' coincide con el carácter '?'.

Véase también

El módulo pathlib ofrece objetos de ruta de alto nivel.

glob.glob(pathname, *, recursive=False)¶

Devuelve una lista posiblemente vacía de nombres de rutas que coinciden con pathname, que debe ser una cadena que contenga una especificación de ruta. pathname puede ser absoluto (como /usr/src/Python-1.5/Makefile) o relativo (como../../Tools/*/*.gif), y puede contener comodines de estilo shell. Los enlaces de tipo Brokensymlinks se incluyen en los resultados (como en el shell). La ordenación de los resultados depende del sistema de archivos. Si se elimina o añade un archivo que satisface las condiciones durante la llamada a esta función, no se especifica si se incluirá el nombre de la ruta de ese archivo.

Si la recursividad es verdadera, el patrón «**» coincidirá con cualquier archivo y con cero o más directorios, subdirectorios y enlaces simbólicos a directorios. Si el patrón es seguido por un os.sep o os.altsep entonces los archivos no coincidirán.

Lanza un evento de auditoría glob.glob con argumentos pathname, recursive.

Nota

Usar el patrón «**» en árboles de directorios grandes puede consumir una cantidad excesiva de tiempo.

Cambiado en la versión 3.5: Soporte para globos recursivos usando «**«.

glob.iglob(pathname, *, recursive=False)¶

Devuelve un iterador que produce los mismos valores que glob()sin almacenarlos todos simultáneamente.

Llama a un evento de auditoría glob.glob con argumentos pathname, recursive.

glob.escape(pathname)¶

Escapar todos los caracteres especiales ('?', '*' y '.txt'.

Nuevo en la versión 3.4.

Por ejemplo, considere un directorio que contiene los siguientes archivos:1.gif, 2.txt, card.gif y un subdirectorio subque sólo contiene el archivo 3.txt. glob() producirá los siguientes resultados. Observe cómo se conservan los componentes iniciales de la ruta.

>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)

Si el directorio contiene archivos que empiezan por . no se buscarán por defecto. Por ejemplo, considere un directorio que contenga card.gif y.card.gif:

>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')

Véase también

Módulo fnmatch

Expansión de nombres de archivo (no de rutas) al estilo de los shells

Deja una respuesta

Tu dirección de correo electrónico no será publicada.