python和shell可以读取的配置文件

dxxyhpgq  于 2023-03-19  发布在  Shell
关注(0)|答案(4)|浏览(174)

我有python脚本和shell脚本在同一个文件夹中,它们都需要配置。我目前有一个config.py用于我的python脚本,但我想知道是否有可能有一个单一的配置文件,可以很容易地被python脚本和shell脚本读取。
有谁能给予一个最适合Python和shell读取的配置文件格式的例子吗?

5ktev3wc

5ktev3wc1#

保留“config.py“而不是“config.sh“会产生一些漂亮的代码。

  • 配置py*
CONFIG_VAR = "value"
CONFIG_VAR2 = "value2"
  • 脚本.py*:
import config

CONFIG_VAR = config.CONFIG_VAR
CONFIG_VAR2 = config.CONFIG_VAR2
  • 脚本.sh*:
CONFIG_VAR="$(python-c 'import config;print(config.CONFIG_VAR)')"
CONFIG_VAR2="$(python-c 'import config;print(config.CONFIG_VAR2)')"

另外,这比像Gilles回答所要求的那样尝试“在Python中模拟Bash”源代码”要清晰得多。

pu82cl6c

pu82cl6c2#

我认为最简单的解决办法是:

key1="value1"
key2="value2"
key3="value3"

shell中,您只需要获取这个env文件源代码,而在Python中,它很容易解析。
=周围不允许有空格
对于Python,请看这篇文章:Emulating Bash 'source' in Python

fdbelqdn

fdbelqdn3#

configobj,您可以使用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

6uxekuva

6uxekuva4#

这在shell和python中都有效:

NUMBER=42
STRING="Hello there"

您还需要什么?

相关问题