Kiedy używasz Pythona, musisz używać odpowiednich modułów, aby robić to, co chcesz. Na przykład, aby znaleźć wszystkie pliki w katalogu z rozszerzeniem shp, istnieją znacznie prostsze rozwiązania, które zostały przedstawione bez przerwy, co jest okropne ... (jak rozwiązanie przedstawione przez Nathana W, ale jest wiele, wiele innych, po prostu szukaj w Internecie)
Kilka przykładów z odpowiednimi modułami:
1) z modułem glob:
tylko pliki kształtu:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
pliki kształtu i geobazy:
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
jeśli chcesz szukać również w podkatalogach:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) z os.listdir i listami (w dwóch wierszach) -> lista wyników
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) z modułem fnmatch:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
i wiele innych rozwiązań, rekurencyjnych itp.
arcpy.da.walk
.