configobj
不支持列表您尝试使用它们的方式,但作为逗号分隔值:
[fruit]
favourite = Apple, Orange
在您的代码中,您只需像往常一样访问该属性:
>>> cfg = configobj.ConfigObj('basket.ini')
>>> cfg['fruit']['favourite']
['Apple', 'Orange']
欲了解更多信息,请查看这篇文章。
编辑:如果您确实需要支持格式与您的问题完全相同的配置文件,请注意为它编写自定义解析器很容易:
import re
from collections import defaultdict
def parse(f):
data = defaultdict(list)
section = None
for line in f:
line = line.strip()
if not line:
continue
match = re.match('\[(?P<name>.*)\]', line)
if match:
section = match.group('name')
else:
data[section].append(line)
return data
cfg = parse(open('basket.ini'))
print cfg['favoFruit']
示例输出:
['苹果','橙色']