2014-10-28 5 views
5

का स्पष्टीकरण मैंने अभी पाइथन के pysftp का उपयोग करना शुरू कर दिया है और मैं उलझन में हूं कि इसे walktree फ़ंक्शन कैसे कॉल करें।pysftp.Connection.walktree() पैरामीटर

मैं कुछ कोड (http://pydoc.net/Python/pysftp/0.2.8/pysftp/ पर उपलब्ध हैं) है कि मुझे बेहतर समझने के लिए फार्म मेरी मापदंडों

def walktree(self, remotepath, fcallback, dcallback, ucallback, recurse=True): 
    '''recursively descend, depth first, the directory tree rooted at 
    remotepath, calling discreet callback functions for each regular file, 
    directory and unknown file type. 

    :param str remotepath: 
     root of remote directory to descend, use '.' to start at 
     :attr:`.pwd` 
    :param callable fcallback: 
     callback function to invoke for a regular file. 
     (form: ``func(str)``) 
    :param callable dcallback: 
     callback function to invoke for a directory. (form: ``func(str)``) 
    :param callable ucallback: 
     callback function to invoke for an unknown file type. 
     (form: ``func(str)``) 
    :param bool recurse: *Default: True* - should it recurse 

    :returns: None 

लेना चाहिए लेकिन मैं अभी भी वास्तव में क्या "द्वारा कॉलबैक फ़ंक्शन का मतलब है एक नियमित रूप से करने के लिए आह्वान करने के लिए पर उलझन में हूँ मदद की पाया । फ़ाइल, एक निर्देशिका के लिए, और एक अज्ञात फ़ाइल प्रकार के लिए

मैं भी आधिकारिक दस्तावेज के माध्यम से ध्यान दिया है: https://media.readthedocs.org/pdf/pysftp/latest/pysftp.pdf

लेकिन सभी यह मेरेबारे में बताता है

एक शक्तिशाली विधि है कि रिकर्सिवली (डिफ़ॉल्ट) एक दूरस्थ निर्देशिका संरचना चलना और के लिए प्रत्येक फाइल, निर्देशिका या अज्ञात इकाई यह सामना करना पड़ता है एक उपयोगकर्ता के आपूर्ति कॉलबैक कार्यों कॉल कर सकते हैं: 0 समारोह है कि है । इसका उपयोग get_x pysftp के तरीकों में किया जाता है और को अपनी बोली लगाने के लिए बहुत प्रभाव के साथ उपयोग किया जा सकता है। प्रत्येक कॉलबैक को इकाई का पथनाम प्रदान किया जाता है। (फॉर्म: func(str))

जो मुझे लगा वह मुझे उचित तरीके से कॉल करने के बारे में अधिक जानकारी नहीं देता था।

अगर कोई व्यक्ति इस फ़ंक्शन को सही तरीके से कॉल करने का उदाहरण प्रदान कर सकता है और आप अपने चुने हुए तर्कों को क्यों पारित कर रहे हैं, तो इसकी सराहना की जाएगी!

उत्तर

0

जानें कि the callback क्या है, यदि यह वास्तविक समस्या है।

walktree के सभी तीन तर्कों के लिए, आपको एक फ़ंक्शन का संदर्भ पारित करने की आवश्यकता है जो एक स्ट्रिंग तर्क लेता है। walktree निर्देशिका संरचना को दोबारा शुरू करता है, यह ऑब्जेक्ट को पथ (स्ट्रिंग) तर्क के रूप में पारित करने वाली प्रत्येक फ़ाइल-सिस्टम ऑब्जेक्ट के लिए उन कार्यों में से एक "वापस कॉल करता है"।

आमतौर पर, आपको फ़ंक्शन कार्यान्वयन के लिए कुछ राज्य (संदर्भ) की आवश्यकता होगी। अर्थात। पाए गए पथों को स्टोर करने के लिए एक कंटेनर का संदर्भ। ग्लोबल वैरिएबल का उपयोग करने से बचने के लिए, ऑब्जेक्ट इंस्टेंस में राज्य (,और ulist कंटेनर) को रखते हुए, आपके प्रश्न में संदर्भित पीईएसएफटीपी नमूना, सादे कार्यों के बजाय सहायक वर्ग के तरीकों में गुजरता है।