我该如何在Python中获取环境变量的值?
环境变量通过 os.environ
访问:
import os
print(os.environ['HOME'])
查看所有环境变量的列表:
print(os.environ)
如果键不存在,尝试访问它将引发一个 KeyError
。为了避免这种情况:
# Returns `None` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# Returns `default_value` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))
# Returns `default_value` if the key doesn't exist
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))
import os
print os.environ['PYTHONPATH'] Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Python25\lib\os.py", line 435, in getitem return self.data[key.upper()] KeyError: 'PYTHONPATH'
- Amit Yadavprint os.environ.get('PYTHONPATH') None // 请继续...//
.get()
可以提供一个默认值。 - Gringo Suave要检查键是否存在(返回True
或False
)
'HOME' in os.environ
如果你想使用默认值,打印键名时还可以使用get()
方法。
print(os.environ.get('HOME', '/home/username/'))
其中默认值为/home/username/
"HOME" in os.environ
还是 os.environ.get('HOME')
? - endolith"HOME" in os.environ
与os.environ.get('HOME') is None
的区别。可以看出前者更易读且更易于使用。 - Konstantin Sekeresh实际上可以这样做:
import os
for key, value in os.environ.items():
print(f'{key}: {value}')
或者简单地说:
for key, value in os.environ.items():
print('{}: {}'.format(key, value))
或者:
for i, j in os.environ.items():
print(i, j)
查看参数中的值:
print(os.environ['HOME'])
或者:
print(os.environ.get('HOME'))
设置数值:
os.environ['HOME'] = '/new/value'
str.format
只是一种花哨的附加功能。 - miike3459>>> import os, pprint; pprint.pprint(list(os.environ.items()))
- noobninja{k: v for k,v in sorted(os.environ.items())}
。 - Noumenon以下是检查$FOO
是否设置的方法:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
您可以使用以下方法访问环境变量
import os
print os.environ
尝试查看PYTHONPATH或PYTHONHOME环境变量的内容。这可能对你的第二个问题有所帮助。
关于环境变量:
import os
print os.environ["HOME"]
导入os
模块:
import os
获取环境变量:
os.environ.get('Env_var')
设置环境变量的方法:
# Set environment variables
os.environ['Env_var'] = 'Some Value'
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
这将打印出所有的环境变量及其值。
如果您计划在生产 Web 应用程序中使用代码,并使用任何 Web 框架,如Django和Flask,请使用envparse等项目。使用它,您可以按照您定义的类型读取值。
from envparse import env
# will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"]
white_list = env.list("WHITE_LIST", default=[])
# Perfect for reading boolean
DEBUG = env.bool("DEBUG", default=False)
注意:kennethreitz的autoenv是一个推荐的工具,用于创建特定项目的环境变量。对于那些使用autoenv
的人,请注意保持.env
文件私密(对公众不可访问)。