es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo trabajar correctamente con las expresiones regulares en Pathlib?

Quiero encontrar todas las imágenes y estoy intentando usar pathlib, pero mi expresión regular no funciona. ¿En qué me equivoqué?

from pathlib import Path
FILE_PATHS = list(Path('./photos/test').rglob('*.(jpe?g|png)'))
print(len(FILE_PATHS))
FILE_PATHS = list(Path('./photos/test').rglob('*.jpg'))#11104
print(len(FILE_PATHS))

Salida:

0
11104
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la expresión regular utilizada en el primer intento no está correctamente formateada. La expresión regular correcta para buscar imágenes tanto en formato JPEG como en formato PNG sería *.(jpe?g|png). El signo de interrogación después de la “e” en “jpeg” hace que la “e” sea opcional, permitiendo que la expresión regular coincida tanto con “jpg” como con “jpeg”. Por lo tanto, el código corregido para encontrar todas las imágenes JPEG y PNG utilizando pathlib debería ser:

    from pathlib import Path
    FILE_PATHS = list(Path('./photos/test').rglob('*.(jpe?g|png)'))
    print(len(FILE_PATHS))
    

    Esto debería devolver correctamente una lista de todos los archivos con las extensiones “jpg”, “jpeg” o “png” ubicados en el directorio especificado y sus subdirectorios.

Comments are closed.