如何給自己的python程序添加外部配置文件
開始之前

最近寫程序需要每次開始都要輸入一大串?dāng)?shù)據(jù),于是就研究了一下如何使用配置文件給我們的python來使用
現(xiàn)在開始

在windows中最常見的配置文件類型就是*.ini文件了
什么是INI:
INI文件格式是某些平臺或軟件上的配置文件的非正式標(biāo)準(zhǔn),以節(jié)(section)和鍵(key)構(gòu)成,常用于微軟Windows操作系統(tǒng)中。這種配置文件的文件擴展名多為INI,故名。

INI文件格式:

節(jié)(section)
節(jié)用方括號括起來,單獨占一行,例如:
[section]
鍵(key)
鍵(key)又名屬性(property),單獨占一行用等號連接鍵名和鍵值,例如:
name=value
注釋(comment)
注釋使用英文分號(;)開頭,單獨占一行。在分號后面的文字,直到該行結(jié)尾都全部為注釋,例如:
; comment text
使用python操作INI文件

python已經(jīng)給我們內(nèi)置了用來操作ini文件的模塊configparser
導(dǎo)入模塊:
import configparser
1, 創(chuàng)建對象
在操作之前首先要創(chuàng)建一個ConfigParser對
cf = configparser.ConfigParser()
這里的cf就是我們創(chuàng)建出來的對象了
2. 讀取一個文件
現(xiàn)在我在代碼文件同級目錄中創(chuàng)建了一個01.ini的文件
其中有一個節(jié)叫做"me",節(jié)中分別有兩個鍵"name"和"uid"和他分別對應(yīng)的值
使用cf.read()方法進(jìn)行讀取

這個方法需要傳入一個文件的路徑,還可以傳遞他的字符集編碼(可選)
請注意:這里的filename需要是一個絕對路徑
如何找到一個絕對路徑
使用
rootPath = os.path.dirname(__file__)
這個方法即可返回當(dāng)前 所執(zhí)行python文件的目錄
這個路徑是最后不帶斜杠的,所以需要在末尾拼接一個"\"

沒有報錯,沒有警告,我們確實成功讀取了01.ini這個文件
3.讀取文件中的內(nèi)容
讀取文件內(nèi)容的方法有好幾種,
? ? 1, 讀取所有節(jié)的名稱
????????使用sections()方法可以獲取文件中所有節(jié)的名稱,他會返回一個列表對象

????2. 獲取一個節(jié)中所有鍵的值
????????meKeys = cf.options("me")

????3. 獲取一個節(jié)中的所有元素
????meItems = cf.items("me")
他會返回一個嵌套在列表中的很多元組
這些元組就是每一個鍵值對

????4.獲取對節(jié)中對應(yīng)鍵的值
????????cf,get("節(jié)","鍵")

4. 添加和修改內(nèi)容
????1. 添加節(jié)
????cf.add_section("B")
????當(dāng)你執(zhí)行這個方法后你會驚奇的發(fā)現(xiàn)這個方法并沒有起作用
????不要著急,原因很簡單,我們并沒有保存文件,我們只是保存了對象中的內(nèi)容
????使用cf.write(文件對象)來保存文件


????2. 設(shè)置對應(yīng)鍵的值
????cf.set("B", "a", "123")


????????3. 刪除節(jié)
????????????cf.remove_section("B")

????????????????5. 刪除鍵和值
????????????????????cf.remove_option("me", "uid")
????????????????

????????????????

總結(jié):

使用python對ini文件的操作還是很方便的,同樣也非常感謝configparser這個模塊的開發(fā)人員
但是回頭想想.json文件他不香么

全部的代碼
