Проверка файла с использованием ArcPy?

13

У меня есть сценарий, который сканирует каталог и выводит основную информацию о растровых данных, такую ​​как имя файла, формат, количество каналов и т. Д. Мне нужен способ сделать это так, если каталог не содержит растровые данные (т.е. что-либо другое кроме растровых данных), отображается сообщение о том, что каталог не имеет правильного типа данных.

Я знаю, что в ArcPy есть Describe()функция, которую я могу использовать для определения типа данных в папке, но я не уверен, как это реализовать. Это то, что я до сих пор:

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

Какие-либо предложения?

kaoscify
источник

Ответы:

16

Как насчет чего-то простого, например:

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

len()Функция вычисляет длину возвращаемой строки / список, так что если он возвращается , 0то вы ничего не знаете в папке согласованного критерия (в данном случае, будучи растр). Таким образом, если папка содержит какие-либо растры (даже если не каждый файл является растром), они будут обработаны.

nmpeterson
источник
Спасибо НМПЭТЕРСОН! Вот и все. Я знал, что мне не хватает чего-то простого. Не могу поверить, что я не думал о len()функции.
kaoscify