जब आप पायथन का उपयोग करते हैं, तो आप जो चाहते हैं उसे करने के लिए सही मॉड्यूल का उपयोग करना चाहिए। उदाहरण के लिए, विस्तार shp के साथ एक निर्देशिका में सभी फ़ाइलों को खोजने के लिए, बहुत सरल समाधान हैं जो बिना ब्रेक के प्रस्तुत किए गए थे, जो भयानक है ... (नाथन डब्ल्यू द्वारा प्रस्तुत समाधान के रूप में, लेकिन कई, कई अन्य हैं, बस इंटरनेट पर खोज)
प्रासंगिक मॉड्यूल के साथ कुछ उदाहरण:
1) ग्लोब मॉड्यूल के साथ:
केवल आकार:
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
।