我有python脚本和shell脚本在同一个文件夹中,它们都需要配置。我目前有一个config.py用于我的python脚本,但我想知道是否有可能有一个单一的配置文件,可以很容易地被python脚本和shell脚本读取。有谁能给予一个最适合Python和shell读取的配置文件格式的例子吗?
5ktev3wc1#
保留“config.py“而不是“config.sh“会产生一些漂亮的代码。
CONFIG_VAR = "value" CONFIG_VAR2 = "value2"
import config CONFIG_VAR = config.CONFIG_VAR CONFIG_VAR2 = config.CONFIG_VAR2
CONFIG_VAR="$(python-c 'import config;print(config.CONFIG_VAR)')" CONFIG_VAR2="$(python-c 'import config;print(config.CONFIG_VAR2)')"
另外,这比像Gilles回答所要求的那样尝试“在Python中模拟Bash”源代码”要清晰得多。
pu82cl6c2#
我认为最简单的解决办法是:
key1="value1" key2="value2" key3="value3"
在shell中,您只需要获取这个env文件源代码,而在Python中,它很容易解析。=周围不允许有空格对于Python,请看这篇文章:Emulating Bash 'source' in Python
=
fdbelqdn3#
configobj,您可以使用pip安装的第三方库可以帮助实现这一点。
pip
from configobj import ConfigObj cfg = ConfigObj('/home/.aws/config') access_key_id = cfg['aws_access_key_id'] secret_access_key = cfg['aws_secret_access_key']
Configobj的主页:https://github.com/DiffSK/configobj
6uxekuva4#
这在shell和python中都有效:
NUMBER=42 STRING="Hello there"
您还需要什么?
4条答案
按热度按时间5ktev3wc1#
保留“config.py“而不是“config.sh“会产生一些漂亮的代码。
另外,这比像Gilles回答所要求的那样尝试“在Python中模拟Bash”源代码”要清晰得多。
pu82cl6c2#
我认为最简单的解决办法是:
在shell中,您只需要获取这个env文件源代码,而在Python中,它很容易解析。
=
周围不允许有空格对于Python,请看这篇文章:Emulating Bash 'source' in Python
fdbelqdn3#
configobj,您可以使用
pip
安装的第三方库可以帮助实现这一点。Configobj的主页:https://github.com/DiffSK/configobj
6uxekuva4#
这在shell和python中都有效:
您还需要什么?