Python ConfigParser读写配置文件

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

你可能感兴趣的:(Python,Python,configparser,ini)