从脚本python中获取变量环境的变化

时间:2014-08-27 23:02:28

标签: python linux shell

我有一个python脚本,它运行一个set_env.sh文件。 后来,我可以将这个新的变量环境改为set_env.sh 有可能吗?

set_env.sh

var1="value1" var2="value2" var3="value3"

get_env.py

import os
os.system("set_env.sh")
print os.environ['var1']

结果:KeyError:' var1'

我知道我可以使用os.environ [' var1'] =' value' (或设置var env)到python文件中。 但我只能从shell文件访问此环境信息。

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

我的临时解决方案是

(?P<variable>[\w]*)[ ]*[\=][ ]*[\"|\']{0,1}(?P<value>[\w]*)[\"|\']{0,1}

Regular expression visualization

Debuggex Demo

        enviroment_regex = "(?P<variable>[\w]*)[ ]*[\=][ ]*[\"|\']{0,1}(?P<value>[\w]*)[\"|\']{0,1}"
        match_object = re.search( enviroment_regex, open("set_env.sh", "r").read() )
        os.environ[match_object.group("variable")] = match_object.group("value")

答案 1 :(得分:0)

为了从python使用设置环境变量:

os.environ["var1"] = "value1"

注意python会产生环境,这意味着只要你在python程序中,env就会包含var1。如果您要从shell env键入(在运行程序之后),则不会回忆var1

了解更多信息:https://www.inkling.com/read/programming-python-mark-lutz-4th/chapter-3/shell-environment-variables