标准的ini文件中,应该有一个类似[section]的部分作为正文的开头,但是很多情况下,ini文件都是不标准的,比如下面这个格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
在PHP中,对ini文件的格式容错率较高,不管是不是以[section]开头,PHP总能以正确的方式解析,不管是用原生的parse_ini_file
函数还是Zend_Config_Ini
类库,都可以非常方便无错地解析ini。
下面是用parse_ini_file
解析文件的结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
而如果用Zend_Config_Ini
来解析的话,输出的结构会更清晰:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
但是在Python中用来解析ini文件的ConfigParser类,则对ini文件的格式有着非常严格的要求——必须在文件开头含有[section]部分,否则在读取时会抛出ConfigParser.MissingSectionHeaderError
。为了能让Python解析ini也可以容错,有必要做一下hack。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
如此一来就能正常工作了。部分内容参考自StackOverflow——parsing .properties file in Python 。
Have a nice day!