Перевірка файлів за допомогою 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.")

Будь-які пропозиції?

Відповіді:


16

Як щодо чогось простого, як-от:

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

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


Дякую nmpeterson! Це було все. Я знав, що пропускаю щось просте. Не можу повірити, що я не думав про len()функцію.
kaoscify
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.