8

我在同一个文件夹中有 python 脚本和 shell 脚本,它们都需要配置。我目前有一个 config.py 用于我的 python 脚本,但我想知道是否可以有一个配置文件,它可以被 python 脚本和 shell 脚本轻松读取。

谁能举一个最适合python和shell读取的配置文件格式的例子。

4

4 回答 4

6

我认为最简单的解决方案是:

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

中,你只需要获取这个 env 文件,在 Python 中,它很容易解析。

周围不允许有空格=

对于 Python,请参阅这篇文章:Emulating Bash 'source' in Python

于 2013-01-21T15:06:26.120 回答
3

configobj lib 可以帮助解决这个问题。

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']
于 2015-10-16T10:20:43.620 回答
1

这在 shell 和 python 中都有效:

NUMBER=42
STRING="Hello there"

你还需要什么?

于 2013-01-21T15:07:31.423 回答
-1

保留“config.py”而不是“config.sh”会导致一些漂亮的代码。

配置文件

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 '源'”要清晰得多。

于 2018-05-23T20:28:20.697 回答