在命令行的UNIX中,我做
setenv HOME <path to home>
我将它作为参数传递给我的python脚本
python hello.py HOME
并做
sys.argv[1] = os.environ["HOME"]
仍然没有阅读路径。
我是python的新手,os.environ
对于这种情况是否正确?
答案 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])
这会