2010-10-26 11 views
530

मुझे वर्तमान लॉग-ऑन उपयोगकर्ता की होम निर्देशिका का स्थान प्राप्त करने की आवश्यकता है। वर्तमान में, मैं निम्नलिखित लिनक्स पर उपयोग कर रहा हूं:पायथन में होम निर्देशिका कैसे प्राप्त करें?

os.getenv("HOME") 

हालांकि, यह विंडोज पर काम नहीं करता है। ऐसा करने के लिए सही क्रॉस-प्लेटफार्म तरीका क्या है?

उत्तर

927

आप os.path.expanduser का उपयोग करना चाहते हैं। इससे यह सुनिश्चित होगा कि यह सभी प्लेटफार्मों पर काम करता है

from os.path import expanduser 
home = expanduser("~") 

आप अजगर पर हैं, तो आप उपयोग कर सकते 3.5+ pathlib.Path.home():

from pathlib import Path 
home = str(Path.home()) 
+18

यह ध्यान दिया जाना चाहिए कि उपयोगकर्ता खिड़कियों पर एक डोमेन के लिए पर प्रवेश किया गया हो और उनके प्रोफाइल होम फ़ोल्डर को सक्रिय निर्देशिका में सेट किया गया है, तो यह स्थानीय होम निर्देशिका – scape

+4

@ डॉकिश के बजाय मैप किए गए नेटवर्क फ़ोल्डर की रिपोर्ट करेगा: मजाकिया है कि 'आलसी' नामक किसी को अतिरिक्त मील चला गया .. – Claudiu

+2

@ डॉकिश: हम्म यह सिर्फ इतना नहीं है , कम से कम मेरे लिए। कुछ नियमित गैर-कोड-ब्लॉक टेक्स्ट स्कैन करना और फिर मेरे प्रोग्राम में इसका उपयोग करना बहुत कठिन है। मैं शायद कम से कम लिंक का पालन करें और देखें कि वहां क्या कहता है। लेकिन यहां तक ​​कि एक छोटे से उदाहरण, कोड ब्लॉक में, यह तुरंत स्पष्ट करता है: "यहां वह चीज़ है जिसे आप ढूंढ रहे हैं!" और मैं जा सकता हूं और तुरंत एक पायथन REPL पर इसका परीक्षण कर सकता हूं। मजेदार है कि कैसे एक साधारण स्वरूपण अंतर यह करेगा ... मेरा पसंदीदा तब होता है जब उदाहरण वास्तव में एक आरईपीएल सत्र – Claudiu

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