Wenn Sie Python verwenden, müssen Sie die richtigen Module verwenden, um das zu tun, was Sie wollen. Um beispielsweise alle Dateien in einem Verzeichnis mit der Erweiterung shp zu finden, gibt es viel einfachere Lösungen, die ohne Unterbrechung präsentiert wurden, was schrecklich ist ... (wie die von Nathan W vorgestellte Lösung, aber es gibt viele, viele andere, nur im Internet suchen)
Einige Beispiele mit relevanten Modulen:
1) mit dem glob modul:
nur Shapefiles:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
Shapefiles und Geodatabases:
import glob
types = ('*.shp', '*.gbd') # the tuple of file types
files_grabbed = []
for files in types:
files_grabbed.extend(glob.glob(files)) #files_grabbed = the list of shp and gbd files
wenn Sie auch in den Unterverzeichnissen suchen wollen:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) mit os.listdir und Listenverständnis (in zwei Zeilen) -> Ergebnisliste
path = 'mydir'
shape_files = [f for f in os.listdir(path) if f.endswith('.shp')]
gdb_files = [f for f in os.listdir(path) if f.endswith('.gdb')]
3) mit fnmatch modul:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
und viele andere Lösungen, rekursiv usw.
arcpy.da.walk
.