使用python

时间:2017-12-05 20:25:34

标签: python configparser

示例input.dat

[settings]
port = 1234
host = abc.com

如何解析文件并分配 1234 to agrv[1]abc.com to argv[2]等等

这是我试过的:

$python p.py input.dat
Traceback (most recent call last):
  File "p.py", line 8, in <module>
    print config['settings']['host']
AttributeError: ConfigParser instance has no attribute '__getitem__'

p.py

  #!/usr/bin/env python
    import sys
    import ConfigParser

    if __name__ == '__main__':
        config = ConfigParser.ConfigParser()
        config.read(sys.argv[1])
        print config['settings']['host']
        print config['settings']['port']

如果我能提供帮助,我不想使用python3。

1 个答案:

答案 0 :(得分:1)

ConfigParser不支持类似dict的查找。解析文件后,使用其get()方法检索值,该方法接受两个参数,即节和名称。所以:

config = ConfigParser.ConfigParser()
config.read(sys.argv[1])
print config.get('settings', 'host')
print config.get('settings', 'port')

此处有更多信息:https://docs.python.org/2/library/configparser.html#configparser-objects