У меня есть папка с многочисленными базами геоданных. В базах геоданных есть классы объектов. Я хотел бы получить список классов объектов в этих базах геоданных, используя скрипт Python. Я только дошел до перечисления баз геоданных. У кого-нибудь есть предложения по перечислению классов объектов в базах геоданных?
Строка печати в моем скрипте дает мне следующие результаты:
C:\output\data.gdb
C:\output\otherdata.gdb
C:\output\somethingelse.gdb
Я хочу создать список классов объектов в базах геоданных выше. Ниже мой сценарий до сих пор.
import arcpy, os, sys
from arcpy import env
arcpy.env.workspace = "D:\\output"
inWorkspace = arcpy.env.workspace
workspaces = arcpy.ListWorkspaces("*", "FileGDB")
for item in workspaces:
print item #This part gives me the print statements I shared above
# fcList = arcpy.ListFeatureClasses() #I haven't figured this part out
#I want to list the feature classes in the geodatabases
arcpy
arcgis-10.0
feature-class
workspace
Пэтти Юла
источник
источник
Ответы:
Хитрость, которую вы пропускаете, - сделать каждый GDB активным рабочим пространством перед перечислением содержимого:
Также обратите внимание, что при этом будут пропущены классы пространственных объектов внутри наборов классов объектов, см. Список всех классов пространственных объектов в файловой базе геоданных, включая наборы классов объектов? чтобы решить это.
В более общем случае, если вы используете,
r
вам не нужно дублировать обратную косую черту (это упрощает копирование и вставку из адресной строки проводника Windows и т. Д.): Например,r'D:\output'
источник
for wspace in workspaces:
иfor fc in featureclasses:
.Этот скрипт будет работать с любыми существующими наборами классов объектов (по крайней мере, теоретически - я не проверял его). Тем не менее, общая идея заключается в том, что если имеются наборы классов объектов, вам нужно установить рабочий каталог на этот набор данных, прежде чем перечислять компоненты внутри.
источник
arcpy.env.workspace = gdb
поскольку ListWorkspaces возвращает полный путь. ;-)