示例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。
答案 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