J'ai un dossier contenant de nombreuses géodatabases. Les géodatabases contiennent des classes d'entités. J'aimerais obtenir une liste des classes d'entités dans ces géodatabases à l'aide d'un script Python. Je suis seulement arrivé à lister les géodatabases. Quelqu'un a-t-il une suggestion sur la liste des classes d'entités dans les géodatabases?
La ligne d'article d'impression dans mon script me donne les résultats suivants:
C:\output\data.gdb
C:\output\otherdata.gdb
C:\output\somethingelse.gdb
Je souhaite générer une liste des classes d'entités dans les géodatabases ci-dessus. Voici mon script jusqu'à présent.
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
la source
la source
Réponses:
L'astuce qui vous manque est de faire de chaque gdb l'espace de travail actif avant de lister le contenu:
Notez également qu'il manquera une classe d'entités dans les jeux de données d'entités, voir Liste de toutes les classes d'entités dans la géodatabase fichier, y compris dans les jeux de données d'entités? pour résoudre ça.
Plus généralement, si vous utilisez,
r
vous n'avez pas besoin de tout doubler la barre oblique inverse (facilite le copier-coller depuis la barre d'adresse de l'explorateur Windows, etc.): par exempler'D:\output'
la source
for wspace in workspaces:
etfor fc in featureclasses:
.Ce script traitera de tous les jeux de données d'entités existants (au moins en théorie - je ne l'ai pas testé). Même idée générale cependant, s'il existe des ensembles de données d'entités, vous devez définir votre répertoire de travail sur cet ensemble de données avant de répertorier les entités.
la source
arcpy.env.workspace = gdb
car ListWorkspaces renvoie le chemin complet. ;-)