Я пытаюсь объединить несколько каталогов и несколько GDB для создания списка классов объектов. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь удалить определенные классы объектов из списка, сценарий просто игнорируется или я получаю сообщение об ошибке, в котором x не существует в списке. (X). Проблема с именами классов объектов состоит в том, что у нее есть 3 буквы, которые уникальны для каждого GDB, при этом все еще имеют 2 других стандартных компонента.loop through dirnames list.remove() не работает
Что-то вроде этого:
directory1> directory1.gdb> формы> fc_dir1_feature
&
directory2> directory2.gdb> формы> fc_dir2_feature
и так далее ...
Я использую
for dirpath, dirnames, filenames in arcpy.da.Walk(in_workspace, datatype="FeatureClass",type="Polygon"):
if "dir1" in dirnames:
dirnames.remove('dir1')
Что отлично подходит для удаления наборов данных функций из GDB и расширения всех классов объектов внутри. Но я не могу удалить только определенные классы объектов.
Спасибо за любую помощь.
код, который вы показать ничего не фильтрует ... у вас нет любые каталоги с именем 'dir1'. Вам нужен внутренний цикл for, который выполняет итерации dirnames и проверок, чтобы увидеть, находится ли 'dir1' в одном из них. – tdelaney
Да, этот фрагмент сценария удалит весь каталог и классы объектов внутри. Вот где моя проблема, я не хочу, чтобы весь каталог перешел некоторые классы объектов в каталог. – cbrannin
у вас есть каталог под названием «directory1» и каталоги, такие как «fc_dir1_feature», которые содержат «dir1», но не каталоги, называемые самими «dir1». Итак, если ваш оператор if действительно 'if" directory1 "в dirnames:', тогда у вас будет эта проблема. Думаю, я знаю, как это решить и напишу ответ. – tdelaney