Al trabajar con archivos en Python, es posible que necesitemos obtener archivos basados en un patrón específico. El módulo glob en Python proporciona funciones para crear listas de archivos que coinciden con patrones dados, como caracteres comodín y soporte para búsquedas recursivas con "**". A continuación, se muestra cómo podemos importar el módulo y usarlo:
import glob
txt_files = glob.glob('*.txt') # Obtiene todos los archivos .txt en el directorio actual
print(txt_files, type(txt_files)) # Imprime la lista de archivos .txt y su tipo
Supongamos que hay tres archivos de texto en el directorio actual: file1.txt, file2.txt y file3.txt, la salida sería:
La función glob toma un patrón como cadena y devuelve una lista de rutas de archivos y directorios que coinciden con el patrón.
En nuestro ejemplo anterior, usamos el carácter comodín *, que coincide con cero o más caracteres. Por lo tanto, *.txt coincide con todos los archivos que terminan con .txt.
También podemos buscar archivos en subdirectorios de forma recursiva:
nested_files = glob.glob('**/*.txt', recursive=True) # Obtiene todos los archivos .txt recursivamente
print(nested_files, type(nested_files)) # Imprime la lista de archivos .txt y su tipo
Suponiendo que además de nuestros archivos anteriores, también tenemos un folder1 en el directorio actual que contiene file4.txt y file5.txt, la salida sería:
Aquí hemos usado ** en nuestro patrón. Este símbolo en un patrón de ruta representa todos los archivos y cero o más directorios y subdirectorios. También usamos el argumento recursive=True para habilitar que la función busque en subdirectorios. Por lo tanto, '**/*.txt', recursive=True obtiene todos los archivos .txt del directorio actual y sus subdirectorios.
Esta es una forma útil de manejar rutas de archivos y automatizar tareas de manejo de archivos en Python.
Desafío: Encontrar archivos .py
Como nuevo científico de datos en una startup tecnológica, te han asignado la tarea de organizar todos los archivos Python en tu proyecto actual. Debido al ajetreo de las últimas semanas, los archivos Python (.py) están dispersos por todo el directorio actual. Tu trabajo es crear un programa en Python que use glob para listar todos los archivos Python (.py) presentes en el directorio actual. Sin embargo, dado que solo estás interesado en los nombres de los archivos y no en su ubicación, la salida debe ser solo los nombres de los archivos sin la ruta del directorio.
El programa no necesita recibir ninguna entrada.
La salida del programa debe contener los nombres de los archivos Python en el directorio actual, cada nombre en una nueva línea. No incluyas la ruta del directorio en la salida. La salida debe estar ordenada alfabéticamente.