Python基础教程

012_Python读写ini文件

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)。

这篇文章对您有用吗?

我们要如何帮助您?