दिलचस्प पोस्ट
मैं अपने जावा अनुप्रयोग में फ़ाइलों को कैसे लोड करूँ? गैर-मुख्य फ़ंक्शन के लिए रेंज-आधारित सरणी पर लूप आधारित ASP.NET MVC 3 रेज़र के साथ Ajax.BeginForm का उपयोग करना यह jQuery क्लिक फ़ंक्शन काम क्यों नहीं कर रहा है? त्रुटि: इवेंटलेट इंस्टॉल करते समय कमांड 'जीसीसी' एक्जिट स्टेटस 1 में विफल हुआ पैसे से निपटने के लिए क्या मुझे NSDecimalNumber का उपयोग करना चाहिए? सॉकेट '/var/mysql/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं किया जा सकता है (38) आप स्पिनर के चुने हुए मान को कैसे प्राप्त करते हैं? Php का उपयोग करने की अनुमति के बिना एक "facebook_pages" के बिना एक फेसबुक पेज पर पोस्ट करें 4xcode में पायथन? jQuery – प्रत्येक 10 सेकंड में एजेक्स को कॉल करें सी ++: क्यों bool 8 बिट लंबा है? Yii2 में साफ यूआरएल सक्षम करें एसक्यूएल कॉलम के नामों से कैसे निपटें, जो एसक्यूएल कीवर्ड की तरह दिखते हैं? ब्राउज़र आकार / आकार बदलने के आधार पर Jquery Change Height

os.path.dirname (__ फ़ाइल_) खाली देता है

मुझे मौजूदा निर्देशिका का पथ प्राप्त करना है जिसके तहत .py फ़ाइल निष्पादित हो रही है।

कोड के साथ एक साधारण फाइल D:\test.py :

 import os print os.getcwd() print os.path.basename(__file__) print os.path.abspath(__file__) print os.path.dirname(__file__) 

यह वायर्ड है कि आउटपुट है:

 D:\ test.py D:\test.py EMPTY 

मैं getcwd() और path.dirname() से एक ही परिणाम की अपेक्षा कर रहा हूं।

दिया os.path.abspath = os.path.dirname + os.path.basename , क्यों

 os.path.dirname(__file__) 

खाली देता है?

वेब के समाधान से एकत्रित समाधान "os.path.dirname (__ फ़ाइल_) खाली देता है"

क्योंकि os.path.abspath = os.path.dirname + os.path.basename नहीं रखता है हम बजाय है

 os.path.dirname(filename) + os.path.basename(filename) == filename 

दोनों dirname() और basename() केवल वर्तमान निर्देशिका में खाते के बिना दिए गए फाइलनाम को घटक में विभाजित करते हैं। यदि आप वर्तमान निर्देशिका पर विचार करना चाहते हैं, तो आपको ऐसा स्पष्ट रूप से करना होगा।

पूर्ण पथ के dirname प्राप्त करने के लिए, उपयोग करें

 os.path.dirname(os.path.abspath(__file__)) 

उस तरह भी इस्तेमाल किया जा सकता है:

 dirname(dirname(abspath(__file__))) 
 print(os.path.join(os.path.dirname(__file__))) 

आप इस तरह से भी इसका इस्तेमाल कर सकते हैं

 os.path.split(os.path.realpath(__file__))[0] 

os.path.realpath(__file__) वर्तमान स्क्रिप्ट के abspath वापसी; os.path.split (abspath) [0] वर्तमान dir वापसी

 import os.path dirname = os.path.dirname(__file__) or '.'