目录
Python读写ini文件
Python解析ini的结果是列表与元组的复合结构。
ini是什么格式
ini格式是另一种文本形式配置文件数据组织形式(与Windows中的INI文件相似),内容是键值对与分区信息。
ini格式示例如下(文本文件myconfig.ini)。
[database_test]
url = localhost
user = zhangsan
passwd = 123456
database = mydb01
[database_prod]
url = www.xxx/xxx/xx
user = zhangsan2
passwd = 123456
database = mydb02
分区信息由中括号"[]"表示,键值对关系用“=”表示。
Python读写ini文件主要方法
Python标准库中提供了configparser模块用于操作ini格式。
主要用到的函数如下
cf.read(filename):读取文件内容
cf.sections():得到所有的section,并且以列表形式返回
cf.options(section):得到section下所有的option
cf.items(section):得到该section所有的键值对
cf.get(section,option):得到section中option的值,返回string类型的结果
cf.getint(section,option):得到section中option的值,返回int类型的结果
cf.write(filename):将configparser对象写入.ini类型的文件
cf.add_section():添加一个新的section
cf.set(section,option,value):对section中的option信息进行写入
cf.remove_section(section):删除文件中的某个section的数值
cf.remove_option(section,option):删除文件中某个section下的option的数值
Python读取ini
读取配置文件(myconfig.ini),示例如下。
from configparser import ConfigParser
cf=ConfigParser()
cf.read("myconfig.ini")
print(cf.sections()) # 获取所有分区名
print(cf.options("database_test")) # 获取此分区所有键名key
print(cf.items("database_test")) # 获取此分区所有键值对元组,(k,v)
print(cf.get("database_test","user")) # 获取此分区某一键名对应的值value
# 灵活获取ini信息
alist=cf.items("database_test")
print(alist) # 是个列表,元素是元组
print(alist[0][0]) # 复合列表的取值
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t16.py
['database_test', 'database_prod']
['url', 'user', 'passwd', 'database']
[('url', 'localhost'), ('user', 'zhangsan'), ('passwd', '123456'), ('database', 'mydb01')]
zhangsan
[('url', 'localhost'), ('user', 'zhangsan'), ('passwd', '123456'), ('database', 'mydb01')]
url
Process finished with exit code 0
Python写入ini
配置文件主要用于读取,如果你一定要写入,可以使用add和set,然后打开文件再cf.write。
import configparser
cf=configparser.ConfigParser()
cf.add_section("login")
cf.set("login","user","xiaofang")
cf.set("login","passwd","123456")
with open("myconfig2.ini","w") as f:
cf.write(f)
生成文本文件myconfig2.ini,内容如下
[login]
user = xiaofang
passwd = 123456
另外,Python的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析。
更多内容可以参考官方手册(https://docs.python.org/zh-cn/3/library/configparser.html)。