Python'u kullanırken, istediğiniz şeyi yapmak için doğru modülleri kullanmanız gerekir. Shp uzantılı bir dizindeki tüm dosyaları bulmak için, örneğin, ara vermeden sunulan çok daha basit çözümler var, ki bu çok kötü ... (Nathan W tarafından sunulan çözüm olarak, ama daha birçokları var, sadece İnternette ara)
İlgili modüller ile bazı örnekler:
1) glob modülü ile birlikte:
sadece şekil dosyaları:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
şekil dosyaları ve coğrafi veri tabanları:
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
alt dizinlerde de arama yapmak istiyorsanız:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) os.listdir ve liste anlama (iki satırda) -> sonuç listesi
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) fnmatch modülüyle:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
ve diğerleri, özyinelemeli vb çözümler
arcpy.da.walk
.