Ich habe einen Ordner mit zahlreichen Geodatabases. Innerhalb der Geodatabases befinden sich Feature-Classes. Ich möchte eine Liste der Feature-Classes in diesen Geodatabases mithilfe eines Python-Skripts erhalten. Ich bin nur so weit gekommen, die Geodatabases aufzulisten. Hat jemand einen Vorschlag zur Auflistung der Feature-Classes in den Geodatabases?
Die Druckelementzeile in meinem Skript gibt mir die folgenden Ergebnisse:
C:\output\data.gdb
C:\output\otherdata.gdb
C:\output\somethingelse.gdb
Ich möchte eine Liste der Feature-Classes in den obigen Geodatabases erstellen. Unten ist mein Skript bis jetzt.
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
Patty Jula
quelle
quelle
Antworten:
Der Trick, den Sie vermissen, besteht darin, jede GDB zum aktiven Arbeitsbereich zu machen, bevor Sie den Inhalt auflisten:
Beachten Sie auch, dass hierdurch Feature-Classes in Feature-Datasets fehlen. Weitere Informationen finden Sie unter Auflisten aller Feature-Classes in der Datei-Geodatabase, auch in Feature-Datasets. um das zu lösen.
Im Allgemeinen müssen Sie bei Verwendung
r
nicht alles doppelt verdoppeln (erleichtert das Kopieren und Einfügen aus der Adressleiste des Windows-Explorers usw.): zr'D:\output'
quelle
for wspace in workspaces:
undfor fc in featureclasses:
.Dieses Skript behandelt alle vorhandenen Feature-Datasets (zumindest theoretisch - ich habe es nicht getestet). Dieselbe allgemeine Idee: Wenn es Feature-Datasets gibt, müssen Sie Ihr Arbeitsverzeichnis auf dieses Dataset einstellen, bevor Sie die Features darin auflisten.
quelle
arcpy.env.workspace = gdb
erforderlich. Verwenden Sie es einfach, da ListWorkspaces den vollständigen Pfad zurückgibt. ;-)