Este tutorial proporciona una visión general del método glob() de Python del módulo glob. Incluye varios ejemplos para aportar claridad.
Por lo general, los programadores requieren recorrer una lista de archivos en alguna ubicación, casi siempre teniendo un patrón específico. El módulo glob de Python tiene varias funciones que pueden ayudar a listar archivos bajo una carpeta específica. Podemos filtrarlos basándonos en las extensiones, o con una cadena particular como parte del nombre del archivo.
Todos los métodos del módulo Glob siguen el mecanismo y las reglas de coincidencia de patrones al estilo de Unix. Sin embargo, no permite expandir la tilde (~) ni las variables de entorno.
Métodos Glob() de Python
Hoy vamos a discutir tres funciones principales del módulo Glob.
glob(file_pattern, recursive = False)
Recupera la lista de archivos que coinciden con el patrón especificado en el parámetro file_pattern.
El file_pattern puede ser una ruta absoluta o relativa. También puede contener comodines como los símbolos «*» o «?».
El parámetro recursivo está desactivado (False) por defecto. Cuando es True, busca recursivamente los archivos bajo todos los subdirectorios del directorio actual.
Veamos ahora algunos ejemplos:
Comprueba el directorio actual en busca de archivos de script de Python
El siguiente código comprueba los archivos .py sólo en el directorio actual.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
Otro código de ejemplo – Busca archivos .py en el directorio actual y en los subdirectorios.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pytest_num.pytest_python_in_with_if.pytest_scope.py
Lista de archivos con un patrón
Podemos proporcionar un patrón de ruta incluyendo algunos comodines como ? o rango numérico . El siguiente código lista todos los archivos cuyo nombre comienza con «test» seguido de un número.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Comprobemos un ejemplo más utilizando el signo de interrogación en el patrón.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
La sentencia del bucle for anterior imprimió todos los archivos .py que tenían cinco letras.
La siguiente sentencia imprimiría los nombres de las carpetas de forma recursiva en el directorio de trabajo actual.
>>> glob.glob('selenium/**/', recursive=True)
Método iglob() | Python Glob
Este método crea un objeto generador de Python que puede usarse para listar archivos bajo un directorio dado. Puede llamar a la función next() para imprimir los nombres de los archivos.
Compruebe el código de ejemplo que aparece a continuación:
>>> gen = glob.iglob("*.py")>>> type(gen)<class 'generator'>>>> for py in gen:... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pyfind_seed.pyfrozen_set.py
método escape()
Permite escapar la secuencia de caracteres dada. Puede ser útil para localizar archivos con ciertos caracteres en sus nombres de archivo.
Comprueba los siguientes ejemplos:
>>> char_seq = "-_#">>> for spcl_char in char_seq:... esc_set = "*" + glob.escape(spcl_char) + "*" + ".py"... for py in (glob.glob(esc_set)):... print(py)...python quiz-classes-2.pypython-class.pypython-lists.pypython-random#num.pypython-set.pypython-tuples.pypython-while_loop.pycopy_file#2.pydecimal_sample.pyfind_seed.pyfrozen-set.py
Debe revisar – Python para listar todos los archivos en un directorio