gpt4 book ai didi

python - 在python脚本中调用bash配置文件来设置环境变量

转载 作者:行者123 更新时间:2023-12-01 04:37:49 32 4
gpt4 key购买 nike

我有一个文本文件,其中包含属于可以在 bash 中调用的一组命令的所有路径。脚本,它被称为 progs.ini 。通常当我想在 bash 脚本中调用这个配置文件时,我使用这个命令

. progs.ini

progs.ini 包含如下内容:

BIN=/bin/linux_64/
P_ANALYSE=${BIN}/analyse
NPARA=1

现在我想在 python 中使用我的代码的某些部分,并且我尝试按如下方式使用此命令:

import subprocess as S
import os
CMD='. progs.ini'
S.call([CMD],shell=True)

它不会返回任何错误消息,但无法识别progs.ini中定义的变量。

>>os.system('echo ${BIN}')

0

嗯,这不是设置一些类似于 this problem 的环境变量。 。我想使用配置文件设置一些变量。

最佳答案

您似乎正在使用 Linux。在这种情况下,我倾向于在 ini 文件的末尾放置一个 cat/proc/$$/environ 。这将以易于解析的格式打印出所有键值对。这应该做:

s = os.popen(". whatever.ini && cat /proc/$$/environ").read()
env_vars = {x[:x.find("=")]:x[x.find("=")+1:] for x in s.split("\00")[:-1]}

已测试。这不起作用,但这样做了:

s = os.popen(". ./whatever.ini && set").read()
env_vars = {x[:x.find("=")]:x[x.find("=")+2:-1] for x in s.split("\n")[:-1]}
print env_vars['hello']

关于python - 在python脚本中调用bash配置文件来设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431554/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com