2009-10-09 11 views
16

संभव डुप्लिकेट:
How to get/set logical directory path in pythonक्या os.getcwd() का कोई संस्करण है जो symlinks को कम नहीं करता है?

मुझे लगता है कि मैं एक सांकेतिक रूप से लिंक निर्देशिका से चलाने के एक अजगर स्क्रिप्ट है, और मैं इसे में os.getcwd() कहते हैं, सांकेतिक रूप से लिंक पथ प्राप्त करने की उम्मीद कर मैं इसे से भाग गया। इसके बजाय यह मुझे "वास्तविक" पथ देता है, और इस मामले में यह सहायक नहीं है। मुझे वास्तव में मुझे सिम्लिंक संस्करण देने की ज़रूरत है।

क्या पाइथन के पास इसके लिए एक आदेश है?

उत्तर

13

वर्कअराउंड: os.getenv('PWD')

+0

आह, धन्यवाद। यह निश्चित रूप से काम करता है! –

+4

ध्यान दें कि 'PWD' पर्यावरण चर 'os.chdir()' द्वारा अपडेट नहीं किया गया है, इसलिए यह 'os.getcwd()' के साथ असंगत हो सकता है, भले ही कोई सिम्लिंक न हो। –

11

सामान्य तौर पर यह संभव नहीं है। os.getcwd() कॉल getcwd (3), और POSIX.1-2008 (IEEE Std 1003.1-2008) के अनुसार:

पथ कोई घटक है कि डॉट या डॉट डॉट, कर रहे हैं या सांकेतिक लिंक कर रहे हैं शामिल होगा।

os.getenv['PWD'] खोल पर निर्भर है और sh FreeBSD से साथ उदाहरण के लिए काम नहीं करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे