Python中INI設定檔的讀取

來源:互聯網
上載者:User
>PY提供INI設定檔的操作

關於設定檔,很直觀的感覺就是XML檔案。對於XML檔案的使用大家還是很喜歡的。但有時候只是簡單的一個程式,實現一個簡單的name:value關係。用XML檔案就沒這個必要。這種要求很符合MS的INI檔案格式。所以這裡主要介紹一下對INI檔案的操作方式,而且最近寫的第一個PY應用程式也是使用了INI
什麼是INI  檔案
PY所支援的INI檔案還是和Windows系統所定義有不同,它不但支援name=value的形式,還支援name:value的形式

>PY對INI設定檔讀取提供的類支援

PY的ConfigParser Module中定義了3個類對INI檔案進行操作。分別是RawConfigParser、ConfigParser、SafeConfigParser
RawCnfigParser是最基礎的INI檔案讀取類
ConfigParser、SafeConfigParser支援對$(value)s變數的支援。

>RawConfigParser類的使用方法

int檔案

[weburl]
urlname=http://pumaboyd.cnblogs.com

Test.py檔案

import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.RawConfigParser()
with open("app.ini") as fobj
    cfg.readfp( fobj)
print cfg.get("weburl","urlname") 

 

>ConfigParser類的使用方法

Configration類是從RawConfigParser擴充過來的,可以支援$()s變數。
對RawConfigParserd的get(),items()進行了擴充

 

int檔案

[DEFAULT]
val=pumaboyd
[weburl]
name=%(val)s 

 

Test.py檔案

import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
    cfg.readfp( fobj)
print cfg.defaults()
print cfg.get("weburl","name") 

 

可以看到cfg.get("weburl","name") 輸入的pumaboyd。如果這裡採用的是RawConfigParser,你將看到輸出的是%(val)s。
這裡需要注意的一個地方就是DEFAULT這個預設節點。只能通過cfg.defaults()讀取到。cfg.sections()是不包含DEFAULT這個節點的。

>SafeConfigParser類的使用方法

是從ConfigParser繼承過來,其實是對RawConfigParser進行了擴充,可以支援$()s變數

int檔案

[DEFAULT]
val=pumaboyd
[weburl]
name=abcd 

 

Test.py檔案

import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.SaftConfigParser()
with open("app.ini") as fobj
    cfg.readfp( fobj)
cfg.set("weburl","name","&(val)s")
print cfg.get("weburl","name")

你將看到輸入結果是pumaboyd。如果採用的RawConfigParser,你就看到輸出的是%()s

>如何修改INI檔案

RawConfigParser、SafeConfigParser、ConfigParser中的SET、Remove等方法都只是對ConfigParser對象的修改,並沒有真正的儲存到INI檔案中。所以,需要通過Write方法(3個類中都有這個方法),將修改寫回INI檔案中。

ini檔案

 

[weburl]
name=abcd 

 

Test.py檔案

import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
    cfg.readfp( fobj)
cfg.set("weburl","name","pumaboyd") 

with open("app.ini","w") as fwobj
    cfg.write(fwobj) 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.