पायथन में घर की निर्देशिका कैसे प्राप्त करें?


934

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

os.getenv("HOME")

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


2
यह अजगर का उपयोग करके वास्तविक उपयोगकर्ता होम निर्देशिका को खोजने के लिए एक डुप्लिकेट के रूप में चिह्नित किया गया है , लेकिन मैंने फिर से खोलने के लिए मतदान किया क्योंकि यह उत्तर पायथन 3 पर काम करता है और पुराना उत्तर नहीं देता है।
डौर हाई आर्क

जवाबों:


1677

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

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

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

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

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

7
pathlib.Path.home()Python3.5 के बाद (से उपलब्ध है docs.python.org/3/library/pathlib.html#pathlib.Path.home )
इवान डी पाज़ सेन्टेनो

9
मुझे आश्चर्य है कि किसी और ने इस प्रश्न में इसका उल्लेख क्यों नहीं किया, लेकिन यदि आपको यह जानने की आवश्यकता है कि किसी अन्य उपयोगकर्ता की होम निर्देशिका आप कहां उपयोग कर सकते हैं os.path.expanduser('~username')। संभवतः केवल लिनक्स के लिए ही लागू होता है।
अधिकतम

2
@ दिपयन नं, वह पैथलॉन 2 पाथलिब का है। पायथन 3 के लिए, पैथलिब सही है।
हेयस्टैक

2
नतीजा वही है। यदि आप आम तौर पर पाथलिब के साथ काम कर रहे हैं, तो आप पाथलिब समाधान पसंद कर सकते हैं (और कॉल को छोड़ दें str)। यदि आप केवल स्ट्रिंग के रूप में पथ चाहते हैं, तो वे दोनों समान हैं।
निकल्स मर्त्च

-19

यहाँ एक linux way cd है .. अगर आपको उस नोट की जगह उपयोग करने की आवश्यकता है: (यदि आप एक उप निर्देशिका में हैं तो यह निर्देशिका में ले जाएगा)


4
यह पिछली निर्देशिका में बदल जाता है। शायद आप गलत प्रश्न देख रहे हैं?
theTechRobo36414519

1
मुझे लगता है कि ओपी एक अजगर स्क्रिप्ट में काम करने के लिए कुछ ढूंढ रहा है और वह कमांड सीडब्ल्यूडी के मूल डायर के पास जाएगी, जो कि उपयोगकर्ता होम डायर नहीं हो सकता है।
बेंजामिन गुडाक्रे

मुझे लगता है कि यह गलत प्रश्न का उत्तर देता है, लेकिन यह एक उच्च संख्या में डाउन वोट है - एक नए पोस्टर के लिए, कम नहीं ...
rodrigo-silveira
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.