因此,我想檢查並驗證給定的變量「abc」是否存在並且是真的。如果變量存在並且是False,那麼我希望它去別的地方。這裏是我如何得到它在Python中工作:檢查環境變量是否存在並設置爲True
env = os.environ.copy()
if "abc" in env and env['abc'] == "True":
print "Works"
else:
print "Doesn't work"
有沒有更好的方式來做到這一點?
因此,我想檢查並驗證給定的變量「abc」是否存在並且是真的。如果變量存在並且是False,那麼我希望它去別的地方。這裏是我如何得到它在Python中工作:檢查環境變量是否存在並設置爲True
env = os.environ.copy()
if "abc" in env and env['abc'] == "True":
print "Works"
else:
print "Doesn't work"
有沒有更好的方式來做到這一點?
您可以檢查,看看是否變量是由globals()
和locals()
返回的字典。 (感謝您亞倫提醒我,以添加完整的代碼)
對於本地變量:
if locals().get('abc'):
print(abc)
對於一個全局變量:
if globals().get('abc'):
print(abc)
對於一個環境變量:
if os.environ.get('abc')=='True':
#abc is set to True
更多的信息在這裏:
https://docs.python.org/3/library/functions.html#locals https://docs.python.org/3/library/functions.html#globals
您可以使用:
env.get("abc", False)
假,如果是 「ABC」 是不是在ENV的默認值。
這足以從ENV得到它,我覺得
env.get('abc')
你可以使用try except塊。
try:
# Try calling ABC here anyway you like
# Here I am just printing it
print(abc)
except NameError:
print("Variable ABC does not exist")
如果你這樣做,你應該做'除了NameError:'而不是盲目地捕捉任何異常 – trentcl
'env.get(「ABC」,FALSE)== TRUE' – inspectorG4dget
相同的答案中的所有的海誓山盟10秒該字符串是令人印象深刻...... – Aaron
你實際上是尋找價值的字符串「真」,還是你在尋找布爾型的「真」? – idjaw