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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章