ConfigParser在清单文件的不同部分列出主机?

时间:2016-04-21 14:44:47

标签: python ini configparser

我有一个格式的库存文件。

[web]
web1
web2
web3

[loadbalancer]
lb1
lb2
lb3

[admin]
adm1
adm2
adm3

我希望能够从文件的各个部分读取主机。例如,列出我尝试的所有部分。

import ConfigParser
parser = ConfigParser.ConfigParser()
parser.read('hosts.cfg')
parser.sections()

但这会打印出所有服务器,并出现以下错误。

Traceback (most recent call last):
  File "./server_audit.py", line 55, in <module>
    parser.read('hosts.cfg')
  File "/usr/lib64/python2.6/ConfigParser.py", line 286, in read
    self._read(fp, filename)
  File "/usr/lib64/python2.6/ConfigParser.py", line 510, in _read
    raise e
ConfigParser.ParsingError: File contains parsing errors: hosts.cfg
    [line  2]: 'web1\n'
    [line  3]: 'web2\n'
    [line  4]: 'web3\n'
    [line  7]: 'lb1\n'
    [line  8]: 'lb2\n'
    [line  9]: 'lb3\n'
    [line 12]: 'adm1\n'
    [line 13]: 'adm2\n'
    [line 14]: 'adm3\n'

1 个答案:

答案 0 :(得分:1)

配置文件需要具有以下形式:

[web]
web1 = value1
web2 = value2
web3 = value3

因此,左侧是用于查找的“键”。右侧是该键的值。例如:

[web]
web1 = http://www.example.org