Ketika Anda menggunakan Python, Anda harus menggunakan modul yang benar untuk melakukan apa yang Anda inginkan. Untuk menemukan semua file dalam direktori dengan ekstensi shp, misalnya, ada banyak solusi sederhana yang disajikan tanpa jeda, yang mengerikan ... (seperti solusi yang disajikan oleh Nathan W, tetapi ada banyak, banyak yang lain, hanya cari di internet)
Beberapa contoh dengan modul yang relevan:
1) dengan modul glob:
hanya shapefile:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
shapefile dan 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
jika Anda ingin mencari juga di subdirektori:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) dengan os.listdir dan daftar pemahaman (dalam dua baris) -> daftar hasil
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) dengan modul fnmatch:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
dan banyak solusi lainnya, rekursif dll
arcpy.da.walk
.