我有点不熟悉 python 语法,而且我在读取带有插值的 .ini
文件时遇到问题。
这是我的 ini 文件:
[DEFAULT]
home=$HOME
test_home=$home
[test]
test_1=$test_home/foo.csv
test_2=$test_home/bar.csv
那些线
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('config.ini')
print parser.get('test', 'test_1')
做输出
$test_home/foo.csv
在我期待的时候
/Users/nkint/foo.csv
编辑:
我认为 $
语法隐式包含在所谓的 字符串插值 中(参考 手册):
在核心功能之上,SafeConfigParser 支持插值。这意味着值可以包含引用同一部分中其他值的格式字符串,或特殊 DEFAULT 部分中的值。
但我错了。如何处理这种情况?
原文由 nkint 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,根据文档,您应该使用
%(test_home)s
进行插值test_home
。此外,密钥不区分大小写,您不能同时使用HOME
和home
密钥。最后,您可以使用SafeConfigParser(os.environ)
来考虑您的环境。其中
config.ini
是