0080-【Python系統】-使用configparser、ConfigObj來讀入配置檔案
阿新 • • 發佈:2018-12-13
configparser
是python標準庫中唯一 一個具有指定的配置檔案操作,
-
基本的讀取配置檔案 -read(filename) 直接讀取ini檔案內容 -sections() 得到所有的section,並以列表的形式返回 -options(section) 得到該section的所有option -items(section) 得到該section的所有鍵值對 -get(section,option) 得到section中option的值,返回為string型別 -getint(section,option) 得到section中option的值,返回為int型別,還有相應的getboolean()和getfloat() 函式。
-
基本的寫入配置檔案 -add_section(section) 新增一個新的section -set( section, option, value) 對section中的option進行設定,需要呼叫write將內容寫入配置檔案。
注意事項
配置引數讀出來都是字串型別, 引數運算時,注意型別轉換,另外,對於字元型引數,不需要加“”
應用
支援配置檔案(.ini、 .conf、 .cfg)的讀寫
缺點
1,不能區分大小寫。 2,重新寫入的ini檔案不能保留原有INI檔案的註釋。 3,重新寫入的ini檔案不能保持原有的順序。 4,不支援巢狀。 5,不支援格式校驗。
無序的問題
舉例 預設的ConfigParser對於選項是按照字母順序排列的。
>>> from ConfigParser import ConfigParser >>> cf = ConfigParser() >>> cf.add_section('d') >>> cf.set('d', 'name', 'smallfish') >>> cf.add_section('a') >>> cf.set('a', 'name', 'smallfish2') >>> cf.write(open('d:/a.ini', 'w')) >>> cf = None
生成配置如下:
[a]
name = smallfish2
[d]
name = smallfish
對ConfigParser中section的順序,屬於字典,本身就是無序的。ConfigObj庫還不錯,可以實現順序
>>> from configobj import ConfigObj
>>> config = ConfigObj()
>>> config.filename = 'd:/a.ini'
>>> config['d'] = {}
>>> config['d']['name'] = 'smallfish'
>>> config['a'] = {}
>>> config['a']['name'] = 'smallfish2'
>>> config.write()
生成配置如下:
[d]
name = smallfish
[a]
name = smallfish2
ConfigObj
為configparser的升級版