Validation de fichiers à l'aide d'ArcPy?


13

J'ai un script qui scanne un répertoire et produit des informations de base sur les données raster telles que le nom de fichier, le format, le nombre de bandes, etc. que les données raster), un message s'affiche indiquant que le répertoire n'a pas le type de données correct.

Je sais qu'ArcPy a une Describe()fonction que je pourrais utiliser pour déterminer le type de données dans un dossier, mais je ne sais pas comment l'implémenter. Voici ce que j'ai jusqu'à présent:

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.")

Aucune suggestion?

Réponses:


16

Que diriez-vous de quelque chose de simple comme:

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

La len()fonction calcule la longueur de la chaîne / liste retournée, donc si elle revient, 0vous ne savez rien dans le dossier correspondant au critère (dans ce cas, être un raster). De cette façon, si le dossier contient des rasters (même si tous les fichiers ne sont pas des rasters), ils seront traités.


Merci nmpeterson! C'était ça. Je savais que je manquais quelque chose de simple. Je ne peux pas croire que je n'ai pas pensé à la len()fonction.
kaoscify
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.