ConfigObj长列表和默认值

时间:2012-01-31 17:22:29

标签: python configobj

我有几个关于configobj的问题,我很高兴尝试 用于这个项目。

第一个问题是,如何列出很长的清单? 假设我已在spec文件中声明。

val = string_list

现在我想做     val = 1,       二,       3

但这是不允许的,也是

val = one, \
  two, \
  three

不起作用,有没有办法避免在一行上写下所有内容?

第二个问题是,如何避免声明默认值的两倍 值?

例如假设我有这个规范:

skip_pesky_pyc_paths = string_list

我理所当然地认为(伪代码提前)

conf = ConfigObj(spec=myspec)
conf['skip_pesky_pyc_paths'] == []

但事实并非如此,如果它没有在conf文件中声明它 找不到钥匙? 是否有一个神奇的选择,使它创建密钥,而不是 从规范声明?

一种替代方法可能是使用YAML,而是用于验证 就我所见,ConfigObj看起来更好..

1 个答案:

答案 0 :(得分:2)

关于问题的第二部分,我不确定我是否理解正确,但如果你问如何设置配置文件中不存在的值的默认值,那么你可以做

skip_pesky_pyc_paths = string_list(default=list())

在验证文件中。然后,如果配置文件中不存在skip_pesky_pyc_paths,它将返回[]

另外,你说

  

现在我想做val =一,二,三

但事实上这很好。我刚试过它。确实,将列表的各个值放在单独的行上是行不通的。