2013-02-07 40 views
12

मैं एक साधारण पायथन (2.7.3) स्क्रिप्ट पर काम कर रहा हूं, लेकिन मुझे उपयोगकर्ता का होम फ़ोल्डर प्राप्त करना है। मैंने कोशिश की:पायथन ओ। वातावरण ["HOME"] निष्क्रिय पर काम करता है लेकिन एक स्क्रिप्ट में नहीं

import os 
home_folder = os.environ["HOME"] 

और यह ठीक काम करता है जब मैं निष्क्रिय होने पर इस कोड चल रहा हूँ, लेकिन अगर मैं यह cmd से लॉन्च करते हैं, यह मुझे देता है: «KeyError: 'HOME'»

कोई मुझे बता सकते हैं क्यों? इस समस्या का समाधान किस प्रकार से किया जा सकता है?

+0

आप किस स्क्रिप्ट में स्क्रिप्ट चला रहे हैं? लिनक्स, विंडोज, क्रॉन? –

उत्तर

1

लगता है जैसे आप इसे विंडोज़ पर पूरी तरह से "[लॉन्चिंग] से cmd" पर चलाने की कोशिश कर रहे हैं। आईडीएलई आपको एक सुविधा के रूप में दे रहा है; विंडोज़ पर USERPROFILEHOME के बजाय उपयोग करें। %USERPROFILE% envar Win32 $HOME है।

15

विंडोज USERPROFILE का उपयोग HOME के बजाय करता है। विंडोज़ में HOME नहीं है और अन्य ओएस में USERPROFILE नहीं है, इसलिए इनमें से किसी भी बूंद प्लेटफ़ॉर्म आजादी का उपयोग करना है।

मंच स्वतंत्रता रखने के लिए, यदि आप ऐसा तरह os.path से expanduser उपयोग कर सकते हैं,:

import os.path 
home_folder = os.path.expanduser('~') 

एक तरफ ध्यान दें पर, आप print(os.environ) उपयोग कर सकते हैं सभी वातावरण चर को देखने के लिए आप जो पता चलता है कि करने के लिए उपयोग, के लिए IDLE अतिरिक्त है।

+0

धन्यवाद! यह वास्तव में मुझे उलझन में डाल दिया, यही कारण है कि मैंने इसे यहां पूछा। – Telmo

+0

बहुत बढ़िया, धन्यवाद! – user1063287

2

विंडोज़ में कोई होम पर्यावरण चर नहीं है। यह इसके बजाय USERPROFILE का उपयोग करता है। USERPROFILE चर की एक प्रति के रूप में

set HOME=%USERPROFILE% 

: समस्या आप अपने कंसोल पर एक नया चर "घर" टाइपिंग परिभाषित कर सकते हैं हल करने के लिए।

आप देख सकते हैं कि वे समान टाइपिंग हैं:

echo %USERPROFILE% 
echo %HOME% 

यह वर्तमान सत्र के लिए काम करेंगे।

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

  • कोई संबंधित समस्या नहीं^_^