2010-05-29 13 views
11

मैं वर्तमान में एक यूनी असाइनमेंट में walk विधि का उपयोग कर रहा हूं। यह सब ठीक काम कर रहा है, लेकिन मैं उम्मीद कर रहा था कि कोई मुझे कुछ समझा सकता है।पायथन os.path.walk() विधि

नीचे दिए गए उदाहरण में, a पैरामीटर myvisit विधि पर उपयोग किया गया पैरामीटर क्या है?

>>> from os.path import walk 
>>> def myvisit(a, dir, files): 
... print dir,": %d files"%len(files) 

>>> walk('/etc', myvisit, None) 
/etc : 193 files 
/etc/default : 12 files 
/etc/cron.d : 6 files 
/etc/rc.d : 6 files 
/etc/rc.d/rc0.d : 18 files 
/etc/rc.d/rc1.d : 27 files 
/etc/rc.d/rc2.d : 42 files 
/etc/rc.d/rc3.d : 17 files 
/etc/rc.d/rcS.d : 13 files 
+12

'os.path.walk' हटाई गई है, का उपयोग' os.walk' – SilentGhost

+0

'os.path.exists' और' os.path.isdir' के लिए है कि एक ही है? –

उत्तर

9

यह तर्क आप अपने प्रश्न

+0

आह सही, ठीक है। तो क्या 'ए' सिर्फ 'कोई नहीं' हो सकता है? –

+0

बस कोशिश की। नहीं :) धन्यवाद Krumeler। –

+3

पायथन में सामान्य तरीका यह निर्दिष्ट करने के लिए कि तर्क या चर रुचि का नहीं है, अंडरस्कोर ('_') वर्ण का उपयोग तर्क नाम के रूप में करना है। यह केवल एक सम्मेलन है, लेकिन कुछ आईडीई (उदाहरण के लिए पीईडीवी) अप्रयुक्त चर की जांच करते समय इसका सम्मान करते हैं। – Krumelur

24

पहला तर्क अपने कॉलबैक फ़ंक्शन पर में चलने के लिए, उदाहरण में कोई भी दे दी है os.path.walk समारोह के अंतिम तर्क है। इसका सबसे स्पष्ट उपयोग आपको सहायक कॉल को सहायक कॉल (आपके मामले में, myvisit) में राज्य रखने की अनुमति देना है।

os.path.walk एक बहिष्कृत कार्य है। आपको वास्तव में os.walk का उपयोग करना चाहिए, जिसमें कॉलबैक फ़ंक्शन या सहायक तर्कों की आवश्यकता नहीं है (जैसे आपके उदाहरण में a)।

for directory, dirnames, filenames in os.walk(some_path): 
    # run here your code 
संबंधित मुद्दे