python3 恰到好处的 configparse 教程

大叔的python之路 andy 5年前 (2019-07-04) 2181次浏览 已收录 0个评论 扫描二维码

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 主要就是「简单」处理配置档,而这篇文章则讲了最常使用的功能,
其他的功能像是读入全部的配置然後一个个取出,
或是读入某个段落全部的键,然後再取用之类的,都比较不常使用。

简单! 完成!


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python3 恰到好处的 configparse 教程
喜欢 (0)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址