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.

glob.glob devuelve un índice fuera de rango

Dice “índice fuera de rango”. Imprime correctamente la ruta de la flor, pero cuando intento imprimir flower_path con índice, me da error.

flower_path = os.path.join(DATASET_PATH, flowers_cls[1], '*')
print(flower_path)

# glob a través del directorio (devuelve una lista de todas las rutas de archivo)
flower_path = glob.glob(flower_path, recursive=True)
print(flower_path[3]) # acceder a un archivo individual
Tags:  ,

Answer

  1. Avatar for davy.ai

    El código anterior está intentando acceder al cuarto elemento en la lista flower_path con flower_path[3]. Sin embargo, si la lista flower_path tiene menos de cuatro elementos, esto resultará en un IndexError: list index out of range.

    El código imprime correctamente flower_path usando print(flower_path). Esto significa que os.path.join(DATASET_PATH, flowers_cls[1], '*') construye correctamente la ruta a las imágenes de las flores.

    Para evitar el IndexError, puedes verificar la longitud de la lista flower_path antes de intentar acceder al índice. Por ejemplo:

    flower_path = os.path.join(DATASET_PATH, flowers_cls[1], '*')
    print(flower_path)
    
    # buscar archivos en el directorio (devuelve una lista de todas las rutas de archivos)
    flower_path = glob.glob(flower_path, recursive=True)
    if len(flower_path) >= 4:
        print(flower_path[3]) # acceder a un archivo individual
    else:
        print('flower_path tiene menos de 4 elementos')
    

    Este código verifica si la lista flower_path tiene al menos cuatro elementos antes de intentar acceder al cuarto elemento. Si hay menos de cuatro elementos, imprime un mensaje en lugar de intentar acceder al índice.

Comments are closed.