Python|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"

【Python|Python ConfigParser读写配置文件】这里就遇到了第一个错误:
ModuleNotFoundError: No module named ‘ConfigParser’
经过查证,在Python3.x中,ConfigParser.py 已经更名为 configparser.py 所以出错,改一下名字就对了。
常用操作 读取键值:
conf.read(iniFileUrl)
value = https://www.it610.com/article/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’))

    推荐阅读