Python读入配置文件-configparser介绍

  • A+
所属分类:Python库介绍
摘要这里介绍一个python读取配置文件的库, configparser. 简单介绍一下他的配置文件的结构和读取配置文件的方法.

简介

在写 Python 程序的时候, 我们会设置有时需要设置一些配置文件, 这个时候为了方便读取这些配置文件, 我们会使用 configparser 来进行读取。

这里的主要内容, 参考自知乎的链接, python标准库 configparser读取config或ini配置文件。关于 Python 的配置文件,还可以使用 yaml 来进行设置,关于 yaml 的具体内容,可以参考链接,Python 读取 yaml 配置文件

 

Configparser的介绍

需要注意的是,使用 configparser 读取的配置的数据类型都是 string 类型的。

配置文件结构的介绍

配置文件由两部分组成, 分别是section和option. section是用来分大块的, section下每一个选项是option. 下面是一个简单的配置文件的例子.

  1. # zh_cn.config(UTF-8)
  2. [lang] # => 这里是section
  3. name=中文简体 # => 这里是option
  4. [message]
  5. applyLangTip           = 重启程序来应用更改。
  6. runCommands            = 执行命令
  7. [menu]
  8. id               = 96
  9. service          = 服务
  10. help             = 帮助
  11. officialSite     = 官网
  12. officialHelp     = 帮助文档

 

读取配置文件的方法

使用的方法也是很简单, 首先我们导入库, 并进行实例化.

  1. # 引入包
  2. from configparser import ConfigParser
  3. # 实例化
  4. config = ConfigParser()

常见的读取的方式如下所示:

  • config.read(filename,encoding) 直接读取 ini 文件内容, filename 文件地址,encoding 文件编码格式
  • config.sections() 得到所有的section,并以列表的形式返回
  • config.options(section) 得到该section的所有option
  • config.items(section) 得到该section的所有键值对
  • config[section][option] 读取section中的option的值
  • config.get(section,option) 得到section中option的值,返回为string类型
  • config.getint(section,option) 得到section中option的值,返回为int类型
  • config.getboolean(section,option) 得到section中option的值,返回为bool类型
  • config.getfloat(section,option) 得到section中option的值,返回为float类型

 

配置文件大小写

在使用 configparser 的时候, 默认会将配置文件中所有的大写字母都转为小写的字母. 我们需要对config.optionxform进行设置, 来保证大小写都可以正确被识别. 我们需要设置config.optionxform=str即可.

下面是一个简单的例子:

  1. config = ConfigParser.ConfigParser()
  2. config.optionxform = str

 

配置文件中包含字典类型

有的时候我们需要保存字典类型的在配置文件中。但是因为 configparser 所有读取的都是字符串,相当于我们还需要将字符串转换为字典类型。这个可以直接使用 json.loads 来进行转换。可以看一下下面的例子:

Python读入配置文件-configparser介绍

如果想要将 dict 转换为 str,我们可以使用 json.dumps 的方式来进行转换。(json 这里一定需要双引号,所以使用 json.dumps 来进行转换)

参考资料Python | Convert string dictionary to dictionary

 

修改配置文件

增加键值对

可以像字典中增加 key-value 的方式一样,来进行键值对的增加:

Python读入配置文件-configparser介绍

减少键值对

我们可以直接使用 del 的方式来进行键值对的删除,下面看一个例子:

Python读入配置文件-configparser介绍

 

配置文件写入

当我对配置文件进行修改之后,我们希望将修改后的配置文件保存下来,这个时候可以使用 write 来完成新的配置文件的写入,下面是一个简单的配置文件写入的例子。

  1. import configparser
  2. config = configparser.ConfigParser()
  3. config['bitbucket.org']['User'] = 'hg' # 新增配置文件项
  4. with open('example.ini', 'w') as configfile: # 保存配置文件
  5.      config.write(configfile)

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: