Lorsque vous utilisez Python, vous devez utiliser les modules appropriés pour faire ce que vous voulez. Pour trouver tous les fichiers dans un répertoire avec l'extension shp, par exemple, il existe des solutions beaucoup plus simples qui ont été présentées sans interruption, ce qui est affreux ... (comme la solution présentée par Nathan W, mais il y en a beaucoup, beaucoup d'autres, juste recherche sur Internet)
Quelques exemples avec des modules pertinents:
1) avec le module glob:
fichiers de formes uniquement:
import glob
import os
os.chdir("mydir")
for files in glob.glob("*.shp"):
print files
fichiers de formes et géodatabases:
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
si vous souhaitez rechercher également dans les sous-répertoires:
import glob
for f in glob.iglob("/mydir/*/*.shp"): #search immediate subdirectories
print f
2) avec os.listdir et compréhension des listes (en deux lignes) -> liste des résultats
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) avec le module fnmatch:
import fnmatch
for file in os.listdir('path'):
if fnmatch.fnmatch(file, '*.shp'):
print file
et bien d'autres solutions, récursives etc.
arcpy.da.walk
.