超详细:Python读取配置文件 ConfigParser读取ini
- 1.读取
- 2.方法概览
- 3.1 sections() 得到所有的section,返回列表
- 3.2 得到section下的所有option
- 3.3 items 得到section的所有键值对
- 3.4 读取布尔值
- 3.5 得到section中的option值,返回string/int类型的结果
- 3.6 删除键值对,同样的还设有remove_section(section)
- 3.7上面都是在内存小打小闹,要写到文件才生效
- 3.例外,没有键值对
1.读取
"""
[testini]
inf1="配置一"
inf2="配置二"
status=True
[test2]
config=111
conf=222
"""
首先进行实例化
cf = configparser.ConfigParser()
file = cf.read("test.ini", encoding="utf-8")
2.方法概览
"""
-read(filename) 直接读取文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到section中option的值,返回为string类型
-getint(section,option) 得到section中option的值,返回为int类型,
还有相应的getboolean()和getfloat() 函数。
-write(fp) 将config对象写入至某个 .ini 格式的文件
-add_section(section) 添加一个新的section
-set( section, option, value 对section中的option进行设置,需要调用write将内容写入配置文件
-remove_section(section) 删除某个 section
-remove_option(section, option) 删除某个 section 下的 option
"""
3.1 sections() 得到所有的section,返回列表
sections() 得到所有的section,返回列表
sec = cf.sections()
print(sec)
-->['testini', 'test2']
3.2 得到section下的所有option
得到section下的所有option
opt = cf.options("testini")
print(opt)
-->['inf1', 'inf2', 'status']
3.3 items 得到section的所有键值对
items 得到section的所有键值对
value = cf.items("testini")
dict(value)转换成字典类型
dic = dict(value)
print(value)
print(dic)
-->
[('inf1', '"配置一"'), ('inf2', '"配置二"'), ('status', 'True')]
{'inf1': '"配置一"', 'inf2': '"配置二"', 'status': 'True'}
3.4 读取布尔值
读取布尔值
status = cf.getboolean('testini', 'status')
print(status)
3.5 得到section中的option值,返回string/int类型的结果
get(section,option) 得到section中的option值,返回string/int类型的结果
cur_inf = cf.get("testini", "inf1")
cur_inf2 = cf.getint("test2", "conf")
print(cur_inf, cur_inf2)
-->"配置一" 222
3.6 删除键值对,同样的还设有remove_section(section)
删除键值对,同样的还设有remove_section(section)
# cf.remove_section('testini')
cf.remove_option('testini', 'status')
3.7上面都是在内存小打小闹,要写到文件才生效
此时的配置保存在内存中,需要写入文件方可生效
with open("test.ini", "w+") as f:
cf.write(f)
3.例外,没有键值对
# 如果ini里面没有键值对
"""
[testini]
192.168.0.1
192.168.0.2
192.168.0.3
[test2]
10.15.1.0
10.15.1.2
"""
此时再调用ConfigParser读取便会报出如下错误:
-->ConfigParser.ParsingError: File contains parsing errors: test.ini
import ConfigParser
config = configparser.ConfigParser(allow_no_value=True)