我有一个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文件访问此环境信息。
你能帮助我吗?
答案 0 :(得分:0)
我的临时解决方案是
(?P<variable>[\w]*)[ ]*[\=][ ]*[\"|\']{0,1}(?P<value>[\w]*)[\"|\']{0,1}
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