पर्ल में, FindBin
मॉड्यूल का उपयोग मूल स्क्रिप्ट की निर्देशिका का पता लगाने के लिए किया जाता है। पाइथन में इस निर्देशिका को पाने के लिए कैननिक तरीका क्या है?पर्ल के FindBin के पाइथन समकक्ष क्या है?
विकल्पों मैंने देखा है में से कुछ: अगर वहाँ
os.path.dirname(os.path.realpath(sys.argv[0]))
os.path.abspath(os.path.dirname(sys.argv[0]))
os.path.abspath(os.path.dirname(__file__))
FindBin का उपयोग न करें: http://www.perlmonks.org/?node_id=41213 – runrig
पर्ल्मोक्स शिकायत पुरानी और अप्रचलित है। FindBin बनाया गया था क्योंकि,/proc/pID/exe के आगमन से पहले, वर्तमान निष्पादन योग्य के पथ को खोजने के लिए हेरिस्टिक की आवश्यकता थी। शिकायतकर्ता के पास एक ह्युरिस्टिक था, जो अक्सर काम करता था लेकिन हमेशा काम नहीं करता था। अंत में, यह बताया गया था कि FindBin की हेरिस्टिक में सुधार हुआ है। अब, यह उपलब्ध होने पर/proc/pID/exe का उपयोग करता है, और ऐसे सिस्टम पर यह उस परम चर्चा में शिकायत से अधिक विश्वसनीय है। –
मुझे अभी भी उपयोगी होने के बारे में मेरी 3 साल + पुरानी टिप्पणी में शामिल करने दें - उपयोगी है कि पर्ल फाइंडबिन अब कोर पर्ल वितरण में है: आईएमएचओ फाइंडबिन से भी अधिक उपयोगी है सीपीएएन की डिर :: सेल्फ, जो एक छद्म-निरंतर __DIR__ बनाता है उस निर्देशिका में फैली हुई है जिसमें आपकी स्रोत फ़ाइल है (पूर्ण)। FindBin केवल निष्पादन योग्य के लिए काम करता है; __DIR__ किसी भी मॉड्यूल के लिए काम करता है। –