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.

Quiero obtener la ruta de la imagen deseada utilizando os.walk en Python.

Tengo una carpeta llamada A, que incluye algunas subcarpetas que empiezan con la letra A. En estas subcarpetas se encuentran diferentes imágenes (algunos de los formatos de imagen son .png, .jpeg, .gif y .webp) con diferentes nombres como item1.png, item1.jpeg, item2.png, item3.png, etc. De estas subcarpetas, quiero obtener una lista de las rutas de aquellas imágenes que terminen en 1. Además, solo quiero obtener un formato de archivo de imagen, como por ejemplo solo .jpeg. En algunas subcarpetas, los nombres de las imágenes terminan en 1.png, 1.jpeg, 1.gif, etc. Solo quiero una imagen de cada subcarpeta que termine en 1 (cualquier formato de imagen). Estoy compartiendo el código que devuelve la ruta de la imagen de los elementos (que terminan en 1) para todos los formatos de imágenes.

CÓDIGO:

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener una lista de rutas de imágenes que terminen en 1 en un formato específico (por ejemplo, jpeg) y solo una imagen por subcarpeta, puedes modificar el código de la siguiente manera:

    import os
    
    root_folder = 'A'
    format_to_search = '.jpeg'
    image_list = []
    
    for root, dirs, files in os.walk(root_folder):
        # Comprobar si la subcarpeta comienza con 'A'
        if os.path.basename(root).startswith('A'):
            # Obtener la lista de imágenes en la subcarpeta
            images = [os.path.join(root, f) for f in files if f.endswith(tuple(['1.png', '1.jpeg', '1.giff', '1.webp']))]
            # Filtrar la lista para incluir solo imágenes en el formato especificado
            images = [img for img in images if img.endswith(format_to_search)]
            # Agregar la primera imagen a la lista (si existe alguna)
            if images:
                image_list.append(images[0])
    
    print(image_list)
    

    Este código recorrerá todas las subcarpetas de la carpeta raíz y buscará subcarpetas que comiencen con ‘A’. Luego buscará imágenes que terminen en 1 en cualquiera de los formatos especificados (png, jpeg, giff, webp). Luego filtrará la lista para incluir solo imágenes en el formato especificado y agregará la primera imagen a la lista final. Si no existen imágenes en el formato especificado, se omitirá esa subcarpeta.

    La lista final image_list contendrá las rutas de todas las imágenes que terminen en 1 en el formato especificado, con solo una imagen por subcarpeta.

Comments are closed.