Depende mucho de cómo se almacenen los datos. Si tu almacén de datos ha crecido orgánicamente y los datos están mezclados en un montón de directorios y una mezcla de shapefiles y geodatabases, podrías usar el programa Python os.walk
para listar su estructura de directorios y, a continuación, subestablecer su lista para incluir sólo GDBs y SHPs. A continuación, tendría que trabajar recursivamente a través de cada conjunto de datos en los GDBs y cada uno de los SHPs. Este enfoque es un poco de fuerza bruta, pero usted podría cultivar a unos pocos núcleos de la CPU con un poco de hilo y el uso juicioso del módulo de subproceso.
Si tus datos están ordenados en una única base de datos (ya sea una geodatabase basada en archivos o SDE) tu vida debería ser mucho más fácil. Sólo tienes que recorrer recursivamente la estructura de la base de datos (usando SQL y no el os.walk
función obviamente)
EDITAR tras los comentarios de Visceral: Dado que su árbol de directorios incluye principalmente shapefiles necesita tamizar sus archivos para incluir sólo los que terminan en '.shp'. Aunque SÓLO contengan shapefile, sólo le interesan los que tienen la extensión '.shp'. Hay varias maneras de hacer esto, pero aquí hay un ejemplo:
def dirsearch(basedir):
'''Gets all the shapefiles in the directory structure'''
shpList = []
for dirpath,dirnames,filenames in os.walk(basedir):
shpList.extend([os.path.join(dirpath, fnm) for fnm in filenames if fnm.endswith('.shp')])
return shpList