一、介紹
我們在項目的開發過程中應該會遇到這樣的問題:我們的項目讀取某個配置文件,然后才能按照配置的信息正常運行服務,當我們需要對修改服務的某些信息時,可以直接修改這個配置文件,重啟服務即可,不用再去打開項目代碼進行修改,這樣方便了我們后期運維人員的工作。
讀取配置文件信息,修改配置文件,我們可以使用Configobj和ConfigParser模塊,個人推薦使用Configobj模塊,因為Configobj相比於ConfigParser,優勢在於Configobj模塊的使用更加清晰簡單(其實是我看到ConfigParser模塊好像復雜一點,自己選了個簡單點的模塊而已,哈哈哈哈哈)。
pip install configobj
configobj的簡單之處就在於,它是以字典的形式來讀取/修改配置文件,就跟操作字典一樣,很簡單,下面看看例子就知道了。
二、configobj的使用
1、test.cfg配置文件
配置文件內容如下
[server] name = zbj port = 9000 [home] # 注釋 area = huizhou
2、讀取配置文件信息
from configobj import ConfigObj # 實例化一個Configobj對象,給ConfigObj一個配置文件的路徑,然后通過字典來訪問成員,子段也是一個字典 cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') # 讀配置文件 print(config['server']) # {'name': 'zbj', 'port': '9000'} print(config['server']['name']) # zbj
3、修改配置文件
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config['server']['name'] = "clj" # 修改完記得write寫入配置文件 config.write()
4、給配置文件添加新項
from configobj import ConfigObj
cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config['school'] = {} config['school']['class'] = "three" # 只要進行了修改(包括新增刪除等)的操作,記得write修改 config.write()
5、刪除配置文件中的某個項
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') del config['school'] del config['server']['port'] config.write()
6、將配置文件寫入到不同的文件
from configobj import ConfigObj cfg_path = "./test.cfg" config = ConfigObj(cfg_path, encoding='UTF-8') config.filename = "./test.ini" config.write() # 此時會新建一個test.ini文件,然后會將test.cfg的內容寫入到test.ini文件
7、創建新的配置文件
from configobj import ConfigObj # 實例化一個ConfigObj對象 config = ConfigObj() # filename指定新創建的文件路徑和名稱 config.filename = './my_cfg.ini' # 寫入配置信息 config['people'] = {} config['people']['name'] = 'zzbj' config['people']['age'] = '18' config.write()