ini配置文件读取,可以使用python的configparse这个库。
我的代码是在WIN10 + Python 3.6.5下运行。
准备一个ini文件
我们在桌面准备一个INI文件,叫test.ini
,内容如下:
[db] # 这个叫section
host=test # 这个叫option
user=user1 # 这个叫option
[java] # 这个叫section
uri=http://www.baidu.com # 这个叫option
[default] # 这个叫section
host=default_host # 这个叫option
user=default_user # 这个叫option
uri=default_uri # 这个叫option
注意我的注释#
后面的是注释,[]
这种类型的叫section
,里面的内容就叫option
。
读取
我们在的代码运行的目录和桌面(也就是test.ini
)在同一级目录下。
In [1]: from configparser import ConfigParser
In [2]: cf = ConfigParser()
In [3]: f = open('test.ini')
In [4]: cf.read_file(f)
In [5]: cf.sections()
Out[5]: ['db', 'java', 'default']
In [6]: cf.options('db')
Out[6]: ['host', 'user']
In [7]: cf.options('java')
Out[7]: ['uri']
In [8]: cf.get('db', 'user')
Out[8]: 'user1'
In [9]: cf.has_section('db')
Out[9]: True
In [10]: cf.has_section('db1')
Out[10]: False
In [11]: cf.has_option('db', 'user')
Out[11]: True
In [12]: cf.has_option('db', 'uri')
Out[12]: False
如果按照目前的配置,如果去读取一个section,但是option不存在的情况,是会报错的,如果我们想ini文件的default配置生效(也就是,如果读取的option不在section里面,但是在default里面),我们必须把default设置为大写,如下:
[db]
host=test
user=user1
[java]
uri=http://www.baidu.com
[DEFAULT]
host=default_host
user=default_user
uri=default_uri
如果去读取db这个section下的uri,那么会返回DEFAULT下的uri,也就是default_uri这个值。