जबकि os.environ.get
और के बीच कोई कार्यात्मक अंतर नहीं है os.getenv
, और प्रविष्टियों को सेट करने के बीच एक बड़ा अंतर है । है टूट , तो आप के लिए डिफ़ॉल्ट चाहिए बस जिस तरह से बचने के लिए आप का उपयोग करने के लिए प्रोत्साहित करती है समरूपता के लिए।os.putenv
os.environ
os.putenv
os.environ.get
os.getenv
os.putenv
os.putenv
वास्तविक ओएस स्तरीय वातावरण चर बदलता है, लेकिन एक तरह से है कि के माध्यम से दिखाई नहीं देता os.getenv
, os.environ
या वातावरण चर निरीक्षण के किसी भी अन्य stdlib रास्ता:
>>> import os
>>> os.environ['asdf'] = 'fdsa'
>>> os.environ['asdf']
'fdsa'
>>> os.putenv('aaaa', 'bbbb')
>>> os.getenv('aaaa')
>>> os.environ.get('aaaa')
आपको शायद कॉल करने के getenv
बाद वास्तविक वातावरण चर को देखने के लिए C-स्तर पर ctypes कॉल करना होगा os.putenv
। (शेल उपप्रकार को लॉन्च करना और उसके पर्यावरण चर के लिए यह पूछना भी काम कर सकता है, अगर आप भागने के बारे में बहुत सावधान हैं और --norc
/ --noprofile
या कुछ और जो आपको स्टार्टअप कॉन्फ़िगरेशन से बचने के लिए करने की आवश्यकता है, लेकिन सही होने के लिए बहुत कठिन लगता है।)
os.environ.get()
कौन से रिटर्नNone
(जब तक कि अलग-अलग निर्दिष्ट नहीं किए गए हैं) और कभी भी एक अपवाद नहीं बढ़ाता है यदि एन.वी. वर। मौजूद नहीं है। आपकी भ्रमित करने वाली चीजें जिनके उपयोगos.environ['TERM']
से ऐसा नहीं है कि सवाल क्या है।