Python을 사용할 때는 올바른 모듈을 사용하여 원하는 것을 수행해야합니다. 예를 들어 확장자가 shp 인 디렉토리에서 모든 파일을 찾으려면 나누기없이 제공되는 훨씬 간단한 솔루션이 있습니다. 인터넷 검색)
관련 모듈이있는 몇 가지 예 :
1) 글로브 모듈 사용시 :
shapefile 만 해당 :
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
.