1. 程式人生 > >0080-【Python系統】-使用configparser、ConfigObj來讀入配置檔案

0080-【Python系統】-使用configparser、ConfigObj來讀入配置檔案

configparser

是python標準庫中唯一 一個具有指定的配置檔案操作,

  1. 基本的讀取配置檔案 -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() 函式。

  2. 基本的寫入配置檔案 -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的升級版