Non sono riuscito a far funzionare completamente le altre risposte.
Nel primo esempio, in una directory con entrambi i geodatabase e gli shapefile, ho ottenuto solo un elenco delle classi di feature nel geodatabase, ma quando ho commentato la parte dei geodatabase dello script, ho ottenuto un elenco di shapefile.
Nel secondo esempio, la porzione di geodatabase non ha funzionato affatto, quindi ho copiato nella parte di geodatabase del primo esempio. Ancora una volta, ho ottenuto un elenco di soli geodatabase.
Poi mi ha colpito: i geodatabase vengono letti prima degli shapefile e lo script si ferma nella parte break
nella geodatabase.
Essendo un principiante di Python non so perché break
sia necessario, ma senza di esso lo script sembra andare in un ciclo infinito, ma poiché break
è necessario mi è venuto in mente che mettere i geodatabase parte nel proprio ciclo, dopo l'altro file i tipi sono elencati, risolverebbe il problema:
#create blank text file
with open("C:\\Temp\\GISlayers.txt", "w") as txt:
for root, dirs, files in os.walk("C:\\Temp\\temp"):
for f in files:
#look for shapefiles, etc.
[code...]
for f in files:
#look for geodatabases
[code...]
Quando l'ho fatto ho ottenuto il mio elenco completo.
arcpy.da.walk
.