En esta ocasión continuaremos viendo un módulo nativo de Python llamado glob que nos va a resultar muy útil para examinar el contenido que se encuentra en un determinado directorio, permitiéndonos extraer tanto archivos como carpetas e incluyendo filtros para extraer sólo el contenido deseado.
El módulo glob sólo provée un método llamado glob(path) que nos regresa una lista con el filtro indicado en el path.
En el ejemplo nos apoyaremos a través del módulo os, este módulo es otro de esos módulos fundamentales del sistema y proporciona una gran variedad de herramientas como métodos y submódulos para manipular y obtener información en lo relativo a los directorios y archivos, desde crear un directorio, eliminarlo o saber si un directorio o un archivo existe, entre otras tantas posibilidades. Para el ejemplo de hoy utilizaremos os.path y los métodos isfile(path) y isdir(path).
os.path.isfile(path) : regresa un valor boolean. regresa true si el argumento dado es un archivo y existe
os.path.isdir(path) : regresa un valor boolean. regresa true si el argumento dado es un directorio y existe
En el capítulo del vídeo tutorial creamos un directorio que será el que examinaremos, en el interior de este directorio se encuentran archivos y carpetas que a través de glob y os.path iremos buscando información, esta información será almacenada en listas.
directorio.py
directorio
carpeta1
carpeta2
document1.txt
document2.txt
doc.txt
directorio.py
directorio
carpeta1
carpeta2
document1.txt
document2.txt
doc.txt
El código del capítulo del vídeo tutorial lo pueden ver a continuación ...
import glob, os.path #¡IMPORTANTE! codificar el script en UTF-8 ya que se encuentran vocales acentuadas #glob permite indexar en la ruta seleccionada para examinar los archivos y documentos que contiene #os.path es un submódulo de os, que nos permitirá entre otras cosas saber si un archivo o carpeta existe en la ruta indicada #Crea una lista con todos los archivos y carpetas de la ruta indicada todos = glob.glob("directorio/*") print("Todos los archivos y carpetas:", todos) #Crear una lista solo con los archivos del directorio archivos = [] for element in todos: if (os.path.isfile(element)): archivos.append(element) print("Sólo los archivos:", archivos) #Crear una lista solo con las carpetas del directorio carpetas = [] for element in todos: if (os.path.isdir(element)): carpetas.append(element) print("Sólo las carpetas:", carpetas) #Crea una lista con todos los archivo .txt de la ruta indicada txt = glob.glob("directorio/*.txt") print("Todos los archivos con extensión .txt:", txt) #crea una lista con todos los archivos .txt cuyo nombre este formado por 3 caracteres txt3char = glob.glob("directorio/???.txt") print("Todos los archivos .txt cuyo nombre está formado por 3 caracteres:", txt3char)
No hay comentarios:
Publicar un comentario