加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python脚本中使用shell变量不起作用

发布时间:2020-12-16 21:51:15 所属栏目:Python 来源:网络整理
导读:我有一个shell脚本,其中某些参数设置如下: k.sh: export var="value"export val2="value2" 然后我有一个python脚本,我在调用shell脚本,并希望使用这些环境变量 ex1.py: import subprocessimport ossubprocess.call("source k.sh",shell=True)print os.env

我有一个shell脚本,其中某些参数设置如下:
k.sh:

export var="value"
export val2="value2"

然后我有一个python脚本,我在调用shell脚本,并希望使用这些环境变量
ex1.py:

import subprocess
import os
subprocess.call("source k.sh",shell=True)
print os.environ["var"]

但是我得到了一个KeyError
如何在Python脚本中使用这些shell变量?

最佳答案
您可以获取k.sh并运行Python one-liner以将os.environ的内容打印为JSON.然后使用json.loads将该输出转换回主进程中的di??ct:

import subprocess
import os
import json
PIPE = subprocess.PIPE
output = subprocess.check_output(
    ". ~/tmp/k.sh && python -c 'import os,json; print(json.dumps(dict(os.environ)))'",shell=True)
env = json.loads(output)
print(env["var"])

产量

value

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读