Python 解析配置模組之ConfigParser
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將內容寫入配置檔案。
3.基本例子
test.conf
1
2
3
4
5
6
7
8
9
|
[sec_a]
a_key1 = 20
a_key2 = 10
[sec_b]
b_key1 = 121
b_key2 = b_value2
b_key3 = $r
b_key4 = 127.0.0.1
|
parse_test_conf.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import ConfigParser
cf = ConfigParser.ConfigParser()
#read config
cf.read("test.conf")
# return all section
secs = cf.sections()
print 'sections:', secs
opts = cf.options("sec_a")
print 'options:', opts
kvs = cf.items("sec_a")
print 'sec_a:', kvs
#read by type
str_val = cf.get("sec_a", "a_key1")
int_val = cf.getint("sec_a", "a_key2")
print "value for sec_a's a_key1:", str_val
print "value for sec_a's a_key2:", int_val
#write config
#update value
cf.set("sec_b", "b_key3", "new-$r")
#set a new value
cf.set("sec_b", "b_newkey", "new-value")
#create a new section
cf.add_section('a_new_section')
cf.set('a_new_section', 'new_key', 'new_value')
#write back to configure file
cf.write(open("test.conf", "w"))
|
得到終端輸出:
1
2
3
4
5
|
sections: ['sec_b', 'sec_a']
options: ['a_key1', 'a_key2']
sec_a: [('a_key1', "i'm value"), ('a_key2', '22')]
value for sec_a's a_key1: i'm value
value for sec_a's a_key2: 22
|
更新後的test.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[sec_b]
b_newkey = new-value
b_key4 = 127.0.0.1
b_key1 = 121
b_key2 = b_value2
b_key3 = new-$r
[sec_a]
a_key1 = i'm value
a_key2 = 22
[a_new_section]
new_key = new_value
|
4.Python的ConfigParser Module中定義了3個類對INI檔案進行操作。分別是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基礎的INI檔案讀取類,ConfigParser、SafeConfigParser支援對%(value)s變數的解析。
設定配置檔案test2.conf
1
2
3
4
|
[portal]
url = http://%(host)s:%(port)s/Portal
host = localhost
port = 8080
|
使用RawConfigParser:
1
2
3
4
5
6
7
8
9
10
11
|
import ConfigParser
cf = ConfigParser.RawConfigParser()
print "use RawConfigParser() read"
cf.read("test2.conf")
print cf.get("portal", "url")
print "use RawConfigParser() write"
cf.set("portal", "url2", "%(host)s:%(port)s")
print cf.get("portal", "url2")
|
得到終端輸出:
1
2
3
4
|
use RawConfigParser() read
http://%(host)s:%(port)s/Portal
use RawConfigParser() write
%(host)s:%(port)s
|
改用ConfigParser:
1
2
3
4
5
6
7
8
9
10
11
|
import ConfigParser
cf = ConfigParser.ConfigParser()
print "use ConfigParser() read"
cf.read("test2.conf")
print cf.get("portal", "url")
print "use ConfigParser() write"
cf.set("portal", "url2", "%(host)s:%(port)s")
print cf.get("portal", "url2")
|
得到終端輸出:
1
2
3
4
|
use ConfigParser() read
use ConfigParser() write
localhost:8080
|
改用SafeConfigParser:
1
2
3
4
5
6
7
8
9
10
11
|
import ConfigParser
cf = ConfigParser.SafeConfigParser()
print "use SafeConfigParser() read"
cf.read("test2.conf")
print cf.get("portal", "url")
print "use SateConfigParser() write"
cf.set("portal", "url2", "%(host)s:%(port)s")
print cf.get("portal", "url2")
|
得到終端輸出(效果同ConfigParser):
1
2
3
4
|
use SafeConfigParser() read
use SateConfigParser() write
localhost:8080
|
參考地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-2137681/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python模組之configparserPython
- Python3 中 configparser 模組解析配置的用法詳解Python
- Python學習——configparser模組Python
- python常用模組補充hashlib configparser logging,subprocess模組Python
- Python模組之urllib模組Python
- python模組之collections模組Python
- Python的configparser模組讀取.ini檔案內容並輸出Python
- python之模組Python
- Python 使用ConfigParser操作ini配置檔案教程。Python
- 【node】模組解析之 httpHTTP
- python模組之hashlibPython
- Python模組之jsonPythonJSON
- python之shutil模組Python
- python–模組之基本Python
- python argparse(引數解析模組)Python
- python–模組之random隨機數模組Pythonrandom隨機
- python–模組之os操作檔案模組Python
- 【python介面自動化】- ConfigParser配置檔案的使用Python
- Python基礎之模組Python
- Python學習之模組Python
- python2 traceback模組原始碼解析Python原始碼
- Python中使用dateutil模組解析時間Python
- Python命令列引數解析模組argparsePython命令列
- Python之time模組詳解Python
- Python學習之 datetime模組Python
- python模組之os.pathPython
- Python學習之常用模組Python
- 解析百度Apollo之Routing模組
- 配置模組
- python 模組:itsdangerous 模組Python
- Python模組:time模組Python
- python之匯入模組的方法Python
- python常用模組之paramiko與sshPython
- Python學習之模組與包Python
- python之排序操作及heapq模組Python排序
- python 基礎之模組與包Python
- Python進階,ConfigParser:Python中對於ini格式的配置檔案的使用Python
- json解析模組JSON
- Python學習之如何引用Python自定義模組?Python