我有几个关于configobj的问题,我很乐意尝试
用于该项目。
第一个问题是,我如何列出很长的东西?
假设我已经在spec文件中声明了。
val =字符串列表
现在我想做
val = 1,
二,
三
但这是不允许的,而且
val = one, \
two, \
three
不起作用,是否有办法避免将所有内容写在一行上?
第二个问题是,如何避免声明两次默认值
值?
例如,假设我有此规格:
skip_pesky_pyc_paths = string_list
我想当然了(前面的伪代码)
conf = ConfigObj(spec=myspec)
conf['skip_pesky_pyc_paths'] == []
但事实并非如此,如果未在conf文件中声明它,
找不到钥匙?
是否有一个神奇的选择,可以让他们在没有钥匙的时候创建钥匙
从规范中声明?
一种替代方法是改用YAML,但要进行验证
据我所知,ConfigObj看起来更好。
最佳答案
关于问题的第二部分,我不确定我是否正确理解,但是如果您要询问如何为配置文件中不存在的值设置默认值,则可以
skip_pesky_pyc_paths = string_list(default=list())
在验证文件中。然后,如果配置文件中不存在
skip_pesky_pyc_paths
,它将返回[]
。还有,你说
现在我想做val =一,二,三
但实际上,这很好。我刚刚测试过。确实,将列表的各个值放在单独的行上是行不通的。
关于python - ConfigObj长列表和默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9083988/