版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mist99/article/details/80748779
window下我们常常用ini文件作为配置文件,一个典型的配置文件如下:
[net]
ip = 21.16.16.245
port = 2232
我们要做的事情就是从里面读写键值,Python提供了一个ConfigParser包来做ini文件的续写,很简单的一个事情,实际操作中还是遇到一些小坑,做个记录。
注:我的Python 3.6,如果是Python2.7可能不存在我遇到的坑。
导入包
import configparser
conf = configparser.ConfigParser()
iniFileUrl="sysconfig.ini"
这里就遇到了第一个错误:
ModuleNotFoundError: No module named ‘ConfigParser’
经过查证,在Python3.x中,ConfigParser.py 已经更名为 configparser.py 所以出错,改一下名字就对了。
常用操作
读取键值:
conf.read(iniFileUrl)
value = conf.get(‘net’,’ip’)
写入键值:
conf.read(iniFileUrl)
conf.set(‘net’,’ip’, ‘127.0.0.1’)
conf.write(open(iniFileUrl, ‘w’))
这里write的时候我用的’wb’,遇到了第二个错误:
TypeError: a bytes-like object is required, not ‘str’
python2.x中,写入参数用 ‘wb’,默认数据是byte数据,二进制方式读写
python3.x中,写入参数要 ‘b’,默认是unicode
方法汇总
读取
- read(filename):读取ini文件中的内容
- sections():得到所有section,返回列表形式
- options(section):得到给定section的所有option
- items(section):得到指定section的所有key-value
- get(section,option):得到section中的option值,返回str/int类型
写入
- write(fp) :将config对象写入至某个 .init 格式的文件
- add_section(sectionname):添加一个名为sectionname的section
- set(sectionname,option,value):设置sectionname的option和value的值
删除
- remove_option(section, option) 删除
- remove_section(section)
注意:修改和删除操作都需要回写:
conf.write(open(iniFileUrl, ‘w’))