Використовуючи Python, ви повинні використовувати правильні модулі, щоб робити те, що ви хочете. Наприклад, щоб знайти всі файли в каталозі з розширенням shp, наприклад, є набагато простіші рішення, які були представлені без перерви, що жахливо ... (як рішення, представлене Nathan W, але є багато, багато інших, просто пошук в Інтернеті)
Деякі приклади з відповідними модулями:
1) за допомогою модуля glob:
Тільки формати:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
форми та бази геоданих:
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
якщо ви хочете шукати також у підкаталогах:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) з os.listdir та списком розуміння (у двох рядках) -> список результатів
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:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
та багато інших рішень, рекурсивних тощо.
arcpy.da.walk
.