1. 程式人生 > >Python模組:配置檔案解析器configparser

Python模組:配置檔案解析器configparser

python 讀寫配置檔案ConfigParser模組是python自帶的讀取配置檔案的模組,通過他可以方便的讀取配置檔案。注意,在python3中ConfigParser模組被改名為configparser了。

寫個專案,用到資料庫,多個地方使用,不能硬編碼。很類似java的properties檔案。

可讀取的資料型別

    Configuration file parser.
    A setup file consists of sections, lead by a "[section]" header, and followed by "name: value" entries, with continuations and such in the style of RFC 822.
該模組支援讀取類似如上格式的配置檔案,如 windows 下的 .conf 及 .ini 檔案等。

讀取配置檔案

    -read(filename)               直接讀取檔案內容
    -sections()                      得到所有的section,並以列表的形式返回
    -options(section)            得到該section的所有option
    -items(section)                得到該section的所有鍵值對
    -get(section,option)        得到section中option的值,返回為string型別
    -getint(section,option)    得到section中option的值,返回為int型別,還有相應的getboolean()和getfloat() 函式。

寫入配置檔案

    -write(fp)                                     將config物件寫入至某個 .init 格式的檔案  Write an .ini-format representation of the configuration state.
    -add_section(section)                          新增一個新的section
    -set( section, option, value                   對section中的option進行設定,需要呼叫write將內容寫入配置檔案 ConfigParser2
    -remove_section(section)                       刪除某個 section
    -remove_option(section, option)                刪除某個 section 下的 option

要注意的問題

引數名稱的大寫全部會轉換為小寫。
引數名稱不能含有[,]
如果含有多個名字相同的section時,會以最後一個section為準。

import模組

try:  # python3
import configparser
except:  # python2
import ConfigParser as configparser

configparser模組的使用

配置檔案的格式

[]包含的叫section,    section 下有option=value這樣的鍵值

示例

配置檔案   test.conf    
[section1]
name = tank
age = 28

[section2]
ip = 192.168.1.1
port = 8080


Python程式碼
# -* - coding: UTF-8 -* -  
import ConfigParser

conf = ConfigParser.ConfigParser()

#讀取配置檔案

conf.read("c:\\test.conf")    #也可以從命令列中輸入配置檔名:config.readfp(open(raw_input("input file name:"), "rb"))

# 獲取指定的section, 指定的option的值
name = conf.get("section1", "name")
print(name)

cfg.getboolean('sogou', 'jiebaCutAll')


#獲取所有的section
sections = conf.sections()
print sections

#寫配置檔案
# 更新指定section, option的值
conf.set("section2", "port", "8081")

# 寫入指定section, 增加新option的值
conf.set("section2", "IEPort", "80")

# 新增新的 section
conf.add_section("new_section")
conf.set("new_section", "new_option", "http://www.cnblogs.com/tankxiao")

conf.write(open("c:\\test.conf","w"))

ref: [configparser — Configuration file parser]