Sprawdzanie poprawności plików za pomocą ArcPy?

13

Mam skrypt, który skanuje katalog i wyświetla podstawowe informacje o danych rastrowych, takie jak nazwa pliku, format, liczba pasm itp. Potrzebuję sposobu, aby to zrobić, jeśli katalog nie zawiera danych rastrowych (tj. Niczego innego niż dane rastrowe) wyświetlany jest komunikat informujący, że katalog nie ma poprawnego typu danych.

Wiem, że ArcPy ma Describe()funkcję, której mógłbym użyć do określenia rodzaju danych w folderze, ale nie jestem pewien, jak to zaimplementować. Oto co mam do tej pory:

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

Jakieś sugestie?

kaoscify
źródło

Odpowiedzi:

16

Co powiesz na coś prostego, na przykład:

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

len()Funkcja oblicza długość zwracanego ciąg / listy, więc jeśli zwróci 0wtedy nic w folderze dopasowane kryterium wiedzą (w tym przypadku, będąc raster). W ten sposób, jeśli folder zawiera rastry (nawet jeśli nie każdy plik jest rastrem), zostaną one przetworzone.

nmpeterson
źródło
Dzięki nmpeterson! To było to. Wiedziałem, że brakuje mi czegoś prostego. Nie mogę uwierzyć, że nie pomyślałem o tej len()funkcji.
kaoscify,