读取 ini 配置文件

配置项

读取API

写入API

 

 

配置项

在每个 ini 配置文件中,配置数据会被分组(比如下述配置文件中的“config”和“cmd”),每个分组中又可以指定对应的变量值。

示例:test.ini

# 定义config分组
[config]
platformName=Android
appPackage=com.romwe
appActivity=com.romwe.SplashActivity

# 定义cmd分组
[cmd]
viewPhone=adb devices
startServer=adb start-server
stopServer=adb kill-server

# 定义log分组
[log]
log_error=true

  

读取API

  • read(filename):直接读取文件内容
  • sections():得到所有的 section,并以列表的形式返回
  • options(section):得到该 section 的所有 option
  • items(section):得到该 section 的所有键值对
  • get(section,option):得到 section 中 option 的值,返回为 string 类型
  • getint(section, option):得到 section 中 option 的值,返回为 int 类型
  • getboolean()
  • getfloat()
>>> import configparser
>>>
>>> cf = configparser.ConfigParser()
>>> cf.read("e:\\db.ini")  # 读取配置文件
['e:\\db.ini']
>>>
>>> cf.sections()  # 获取各分组
['config', 'cmd', 'log']
>>>
>>> cf.options("config")  # 获取指定分组的所有键
['platformname', 'apppackage', 'appactivity']
>>>
>>> cf.items("config")  # 获取指定分组的所有键值对
[('platformname', 'Android'), ('apppackage', 'com.romwe'), ('appactivity', 'com.romwe.SplashActivity')]
>>>
>>> cf.get("log", "log_error")  # 获取指定分组及指定键的值
'true'

配置文件中的键是不区分大小写的,例如下述两种方式是等价的:

cf.get("config", "appActivity")
cf.get("config", "APPACTIVITY")

在解析时,getboolean()方法查找任何可行的值,例如以下几个都是等价的:

[log]
log_error=true
log_error=TRUE
log_error=1
log_error=yes

 

写入API

  • write(fp):将config对象写入至某个 .init 格式的文件
  • add_section(section):添加一个新的 section
  • set(section, option, value):对 section 中的 option 进行设置,需要调用 write 将内容写入配置文件
  • remove_section(section):删除某个 section
  • remove_option(section, option):删除某个 sction 的某个 key
 1 >>> import configparser
 2 >>> 
 3 >>> cf = configparser.ConfigParser()
 4 >>> 
 5 >>> cf.add_section("section1")  # 添加分组
 6 >>> cf.set("section1", "key1", "value1")  # 添加键值对
 7 >>> cf.set("section1", "key2", "value2")
 8 >>> 
 9 >>> cf.add_section("section2")
10 >>> cf.set("section2", "key3", "value3")
11 >>>
12 >>> cf.add_section("section3")
13 >>> cf.set("section3", "key4", "value4")
14 >>> cf.set("section3", "key5", "value5")
15 >>>
16 >>> cf.remove_section("section2")  # 删除指定分组
17 True
18 >>> cf.remove_option("section3", "key4")  # 删除指定分组的指定键值对
19 True
20 >>>
21 >>> cf.sections()
22 ['section1', 'section3']
23 >>>
24 >>> f = open("config.ini", "w")
25 >>> cf.write(f)  # 保存配置文件
26 >>> f.flush()  # 刷新或关闭文件,数据才会真正写入文件
27 >>> f.close()

 

上一篇:记录犯得最可笑的错误


下一篇:SDS报告多少钱要什么资料