检查环境变量是否存在并设置为 True

Jas*_*son 7 python environment-variables python-2.7 python-3.x

所以,我想检查并验证给定的变量“abc”是否存在并且它是真的。如果变量存在并且为 False,那么我希望它转到其他位置。这是我如何让它在 python 中工作:

env = os.environ.copy()
if "abc" in env and env['abc'] == "True":
    print "Works"
else:
    print "Doesn't work"
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

vic*_*tor 11

您可以检查,看是否该变量在返回的字典globals()locals()。(感谢 Aaron 提醒我添加完整代码)

对于局部变量:

if locals().get('abc'):
    print(abc)
Run Code Online (Sandbox Code Playgroud)

对于全局变量:

if globals().get('abc'):
    print(abc)
Run Code Online (Sandbox Code Playgroud)

对于环境变量:

if os.environ.get('abc')=='True':
    #abc is set to True
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:

https://docs.python.org/3/library/functions.html#locals https://docs.python.org/3/library/functions.html#globals


Bub*_*Gut 7

您可以使用:

env.get("abc", False)
Run Code Online (Sandbox Code Playgroud)

如果“abc”不在 env 中,则 False 是默认值。