Saltar al contenido

¿Listado de clases de entidad en múltiples geodatabases en una carpeta usando ArcPy?

Solución:

El truco que se está perdiendo es hacer que cada gdb sea el espacio de trabajo activo antes de enumerar el contenido:

for item in workspaces:
    print item
    env.workspace = item
    fcs = arcpy.ListFeatureClasses()
    for fc in fcs:
        print 't', fc

También tenga en cuenta que esto perderá una clase de entidad dentro de los datasets de entidades, consulte Listar todas las clases de entidades en la geodatabase de archivos, incluso dentro de los datasets de entidades. para resolver eso.

De manera más general, si usa r no necesita doble barra invertida en todo (facilita copiar y pegar desde la barra de direcciones del explorador de Windows, etc.): p. r'D:output'

Este script se ocupará de cualquier conjunto de datos de características existente (al menos en teoría, no lo he probado). Sin embargo, la misma idea general es que si hay conjuntos de datos de características, debe configurar su directorio de trabajo en ese conjunto de datos antes de enumerar las características dentro.

import arcpy

dir = r'D:output'
arcpy.env.workspace = dir

gdbList = arcpy.ListWorkspaces('*','FileGDB')

for gdb in gdbList:
    arcpy.env.workspace = gdb               #--change working directory to each GDB in list
    datasetList = arcpy.ListDatasets('*','Feature')     #--make a list of all (if any) feature datasets that exist in current GDB
    fcList = arcpy.ListFeatureClasses()         #--make a list of all feature in current GDB (root)
    for fc in fcList:
        print arcpy.env.workspace,fc            #--print directory,fc name
    for dataset in datasetList:
        arcpy.env.workspace = dataset   #--change working directory to each dataset (if any) in list
        fcList = arcpy.ListFeatureClasses()     #--make a list of all feature in current GDB (current dataset)
        for fc in fcList:
            print arcpy.env.workspace,fc        #--print directory,fc name
        arcpy.env.workspace = gdb
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *