为什么需要ini文件1. 我们可能希望用户可以自己修改参数,或者希望在不改动源码的情况下改变程序的运行,那么配置文件就不可以缺少了。

2. 配置文件在我们平常的开发和使用中是难免会遇到的,而ini格式的文件更是非常常见的一种。虽然说ini格式,但实际上还有ini,cfg,conf,txt等等这些后缀也可以是ini格式的配置文件。前提是符合ini格式要求。


如果由于排版问题不利于观看,可以在有道云笔记中查看,以下是链接:

http://note.youdao.com/noteshare?id=dfec323b2c6509d7189453ec730b3870&sub=7D7493D6D746490BA55C0997FF1BC465

ConfigParser:配置文件的读取

介绍:

今天想写一篇文章来记录一下在Python中ConfigParser这个模块的使用方法

ini格式的配置文件无论是在Windows还是Linux这样的操作系统中,都是十分常见的格式。常见的东西,python里面往往都有一个支持它的东西

ini配置文件简介

后缀不一定是ini,像ini,cfg,conf,txt都可以,本质上就是text文本文件

ini配置文件内容由,节,键(或者称为选项),值三部分构成。

[section_1]

option_1 = value_1

option_2 = value_2

[section_2]

...

另外有一个特殊的节(section),就是默认节(DEFAULT),可以省略,另外记住,大小写的敏感的。

注释,在;后面的文字,直到结尾都是注释

ini文件示例:

;这是一段注释

[DEFAULT]

option_1 = 1

[section_1]

option_2 = 2

ConfigParser模块简介

导入

from configparser import ConfigParser

#实例化一个对象

config = ConfigParser()

这个实例的方法

config.sections()

#返回所有节点名称(一个列表的形式),但是不包括DEFAULT

config.has_section(section)

#查询section(节点)是否存在

config.options(section)

#返回指定节点(section)里面的所有选项(键)

config.read(filenames,encoding=None)

#阅读并解析,filenames为一个包含文件名的列表,单个文件也被允许,不存在的文件被忽略,最后返回一个成功读取的文件列表

config.read_file(fn,source=None)

#解析一个文件对象(通俗的讲就是你打开一个文件之后,这就是一个文件对象)

config.read_string(string)

#先将字符串转变问文件对象,然后执行上面那个方法

config.dict(dictionary)

#解析字典,字典里面必须嵌套一个字典,如:

#{"section":{"option":"value"}}

config.get(section,option)

#获取具体的值

#这个后面的参数有点多,先不用管,只需要知道两个参数即可

config.getint(section,option)

#与get相同,只是将值转变为int类型

config.getfloat(section,option)

#与get相同,只是将值转变为float类型

config.getboolean(section,option)

#与get相同,只是将值转变为bool类型

#0,false,no,off 都会转变为 False

#1,true,yes,on 都会转变为 True

#而且不分大小写

config.items(section=_UNSET,raw=False,vars=None)

#给出了section,则返回一个列表,里面的值是由option,value组成的元祖

#否则,返回一个ItemsView对象(是一个字典)(估计还有生成器),组成为section(字符串)为字典的键,节点对象为字典的值。

#还可以对值进行get操作

config.remove_section(section)

#删除给出的节点和所有选项

config.remove_option(section,option)

#删除某个选项

config.set(section,option,value)

#设置给定选项

#必须在已有节点设置

#可以设置默认节点

config.write(fn,space_around_delimiters=True)

#fn为一个文件对象(open...),space_around_delimiters这个参数为True则等号两边有空格

defaults()

#是一个有序字典(有字典中绝大部分操作)

#键是option,值是value

OrderdDict([("option_1","value"),(...,...)])

add_section(section)

#增加节

#不可以添加DEFAULT和已存在的节,会报错