Validación de archivos con ArcPy?


13

Tengo un script que escanea un directorio y genera información básica de datos ráster, como el nombre del archivo, el formato, el número de bandas, etc. Necesito una forma de hacerlo, si el directorio no contiene datos ráster (es decir, cualquier otra cosa que los datos ráster), se muestra un mensaje que indica que el directorio no tiene el tipo de datos correcto.

Sé que ArcPy tiene una Describe()función que podría usar para determinar el tipo de datos en una carpeta, pero no estoy seguro de cómo implementarla. Esto es lo que tengo hasta ahora:

rasterList = arcpy.ListRasters("*", "ALL")
filesType = arcpy.DataType('RasterDataset') # Can use `DatasetType` as well. 
                                            # I've tested this function to describe
                                            # raster data and ArcPy prints out
                                            # 'RasterDataset', that is why I have it 
                                            # there in the brackets.
for name in rasterList:
    if rasterList == filesType:
        print ("\nFilename:"), name
    else:
        print ("This directory does not contain any raster data.")

¿Alguna sugerencia?

Respuestas:


16

¿Qué tal algo simple como:

if len(rasterList) == 0:
    print ("This directory does not contain any raster data.")
else:
    # Your raster processing code

La len()función calcula la longitud de la cadena / lista devuelta, por lo que si regresa, 0entonces no sabe que nada en la carpeta coincide con el criterio (en este caso, ser un ráster). De esta manera, si la carpeta contiene rásteres (incluso si no todos los archivos son ráster), se procesarán.


Gracias nmpeterson! Eso fue todo. Sabía que me faltaba algo simple. No puedo creer que no haya pensado en la len()función.
kaoscify
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.