如何在python中读取set环境变量

时间:2015-07-03 16:31:26

标签: python environment-variables command-line-arguments command-line-parsing

在命令行的UNIX中,我做

setenv HOME <path to home>

我将它作为参数传递给我的python脚本

 python hello.py HOME

并做

sys.argv[1] = os.environ["HOME"] 

仍然没有阅读路径。

我是python的新手,os.environ对于这种情况是否正确?

2 个答案:

答案 0 :(得分:1)

这似乎取决于你的shell。例如,在Linux中使用bash 4.3-7ubuntu1.5:

$ export XXX="abc"
$ python
>>> import os
>>> os.environ["XXX"]
'abc'
>>> os.environ["HOME"]
'/home/alan'

答案 1 :(得分:1)

如果你的目标是获取主目录的路径作为参数,你可以让你的用户通过在调用脚本之前使shell评估参数来发送它。

我有一个简单的脚本,如 -

import sys
print(sys.argv[1])

在Windows中我将其称为 -

set HOME=D:\
python script.py %HOME%

我得到的输出是 -

D:\

在Linux中 -

$ python hello.py $HOME

输出 -

/home/random/

如果你想从环境变量中获取它,并且想要传递环境变量以用作脚本的第一个参数,那么你应该改变你的脚本,如 -

sys.argv[1] = os.environ.get(sys.argv[1],sys.argv[1])

这会