python3 恰到好处的 configparse 教程
一般称 config.ini 为配置档, 主要内容是键值对(key=value)的组合,再加一个所属的段落(section)
内容大钓如下
[section_a] key_1 = value_1 [section_b] key_a = value_a
我们要的重点就是读取get、写入set。
请参考下方的代码
第 1行 引入 import configparser
第 3行 config = configpaser.ConfigParser() 起手式
第 4行 ini_file 是配置的路径跟档案名称,一般附档名会是 ini 或 cfg
第 5行 读入配置档
第 6行 section_name = “section_a” 我们要使用的段落名称
第 8行 # write 标记以下的代码是写入的部份 跟 第17行 功能一样,只是提示代码阅读者
config.has_section(section_name) 是判断名为 section_name 的段落存不存在
config.add_section(section_name) 增加名为 section_name 的段落
第10行 print has_section 的判断结果
第11~12行 如果 section_name 不存在,则增加 section_name 这个段落
第14行 config.set(section_name, ‘key_1’, ‘value_1’)
在 section_name 的段落里面加入 键名 为 key_1 值为 value_1 的键值对。
第15行 config.write(open(ini_file, ‘w’)) 以写入模式打开配置档, 然後写入全部配置
以上写入的部份完成,我们先说明写入的部份,
原因在於没有看过配置档的人在写入完配置档之後,可以直接用编辑器打开配置档。
此时配置档的内容应该有如上面的配置 section_a 这个段落,
你可以试试自已加上 section_b 的段落及所属配置
再来, 我们继续看 read 的部份, 读取配置的部份
第18行 config.get(section_name,’key_1′) 读出 section_name 段落里面键名称为 key_1 的值
config.has_option 判断段落内是否存在某个键值对
第 20行 print has_option 结果
第 21~22行 先判断 section_name 段落内有没有 key_2 这个键名称, 有的话 print 出值来
import configparser config = configparser.ConfigParser() ini_file = '../data/demo_config.ini' config.read(ini_file) section_name = "section_a" # write # print(config.has_section(section_name)) if not config.has_section(section_name): config.add_section(section_name) config.set(section_name, 'key_1', 'value_1') config.write(open(ini_file, 'w')) # read print(config.get(section_name, 'key_1')) # print(config.has_option(section_name, 'key_2')) if config.has_option(section_name, 'key_2'): print(config.get(section_name, 'key_2'))
python3 的 configparse 主要就是「简单」处理配置档,而这篇文章则讲了最常使用的功能,
其他的功能像是读入全部的配置然後一个个取出,
或是读入某个段落全部的键,然後再取用之类的,都比较不常使用。
简单! 完成!