生活随笔
收集整理的這篇文章主要介紹了
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
[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
import?ConfigParser???cf?=?ConfigParser.ConfigParser()????cf.read("test.conf")????secs?=?cf.sections()?print?'sections:',?secs???opts?=?cf.options("sec_a")?print?'options:',?opts???kvs?=?cf.items("sec_a")?print?'sec_a:',?kvs????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?????cf.set("sec_b",?"b_key3",?"new-$r")??cf.set("sec_b",?"b_newkey",?"new-value")??cf.add_section('a_new_section')?cf.set('a_new_section',?'new_key',?'new_value')????cf.write(open("test.conf",?"w"))? ?
得到終端輸出:
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
[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
[portal]?url?=?http://%(host)s:%(port)s/Portal?host?=?localhost?port?=?8080?
使用RawConfigParser:
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")?
得到終端輸出:
use RawConfigParser() read?
http://%(host)s:%(port)s/Portal?
use RawConfigParser() write?
%(host)s:%(port)s
改用ConfigParser:
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")?
得到終端輸出:
use ConfigParser() read?
http://localhost:8080/Portal?
use ConfigParser() write?
localhost:8080
改用SafeConfigParser:
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):
use SafeConfigParser() read?
http://localhost:8080/Portal?
use SateConfigParser() write?
localhost:8080?
轉載于:https://www.cnblogs.com/iplus/archive/2013/03/29/4489943.html
總結
以上是生活随笔為你收集整理的Python ConfigParser的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。