大家应该接触过.ini格式的配置文件。配置文件就是把一些配置相关信息提取出去来进行单独管理,如果以后有变动只需改配置文件,无需修改代码。特别是后续做自动化的测试,需要拎出一部分配置信息,进行管理。比如说发送邮件的邮箱配置信息、数据库连接等信息。
今天介绍一些如何用Python读取ini配置文件。
格式如下:
; comments [section1] Param1 = value1 Param2= value2 [section2] Param3= value3 Param4= value4
[section]
:ini的section模块,是下面参数值的一个统称,方便好记就行。
Param = value
:参数以及参数值。
ini 文件中,使用“;”进行注释。
Python自带有读取配置文件的模块ConfigParser,配置文件不区分大小写。
有一系列的方法可提供。
read(filename)
:读取文件内容
sections()
:得到所有的section,并以列表的形式返回。
options(section)
:得到该section的所有option。
items(section)
:得到该section的所有键值对。
get(section,option)
:得到section中option的值,返回string类型。
getint(section,option)
:得到section中option的值,返回int类型。
举个栗子:
import os import configparser # 当前文件路径 proDir = os.path.split(os.path.realpath(__file__))[0] # 在当前文件路径下查找.ini文件 configPath = os.path.join(proDir, "config.ini") print(configPath) conf = configparser.ConfigParser() # 读取.ini文件 conf.read(configPath) # get()函数读取section里的参数值 name = conf.get("section1","name") print(name) print(conf.sections()) print(conf.options('section1')) print(conf.items('section1'))
运行结果:
D:Python_projectpython_learningconfig.ini 2号 ['section1', 'section2', 'section3', 'section_test_1'] ['name', 'sex', 'option_plus'] [('name', '2号'), ('sex', 'female'), ('option_plus', 'value')]
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
举个栗子:接上部分
# 写入配置文件 set() # 修改指定的section的参数值 conf.set("section1",'name','3号') # 增加指定section的option conf.set("section1","option_plus","value") name = conf.get("section1","name") print(name) conf.write(open(configPath,'w+')) # 增加section conf.add_section("section_test_1") conf.set("section_test_1","name","test_1") conf.write(open(configPath,'w+'))