python解析.ini檔案
第一part:.ini檔案的介紹
1.ini 檔案的含義:
是Initialization File的縮寫(初始化檔案),是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置,一般使用者就用windows提供的各項圖形化管理介面就可實現相同的配置了。
2.ini檔案的內容結構:
一個ini檔案主要是由多個section組成,每個section中又有多個option,其每個option的格式是key=value鍵值對的形式進行儲存;
注意:section不能重複,裡面資料通過section去查詢,每個seletion下可以有多個key和vlaue的鍵值對,註釋用英文分號(;)
第二part:python讀取.ini檔案的內容--》read
操作.ini檔案可以直接使用python的內建模組:configparser
#1.導包
import configparser
#2建立物件
read_ini = configparser.ConfigParser()
#3.讀取檔案內容
read_ini.read("Database.ini")
#第一種讀取ini檔案方式,直接讀取
value = read_ini['mysql']['user']
print("第一種方法讀取的值:",value)
# 第二種讀取ini檔案方式,通過get方法
value = read_ini.get('mysql','db')
print('第二種方法讀取到的值:',value)
# 第三種讀取ini檔案方式,讀取到一個section中的所有資料,返回一個列表
value = read_ini.items('mysql')
print('第三種方法讀取到的值:',value)
執行結果如下:
通過上面三種方式,可以發現讀取到的資料全部是str型別,但資料庫的埠我們一般都是要獲取為int型別,因此可以通過如下幾個方法可以將其轉換為我們需要的資料型別:
1)getint() 讀取的資料為int型別
#讀取到值為int型別
value=read_ini.getint('mysql','port')
print('讀取到值為int型別:',value)
print('value的型別為:',type(value))
執行結果,如下:
2)getfloat()讀取的資料為float型別
#讀取到值為float型別
value=read_ini.getfloat('study','price')
print('讀取到值為float型別:',value)
print('value的型別為:',type(value))
執行結果,如下:
3)getboolean() 讀取的資料為Boolean型別#讀取到值為boolean型別
value=read_ini.getboolean('study','result')
print('讀取到值為boolean型別:',value)
print('value的型別為:',type(value))
執行結果,如下:
第三part:python寫入內容到.ini檔案-->write
寫入有兩種方式:一種是刪除原檔案內容,重新寫入:w;另外一種是在原檔案基礎上繼續寫入內容,追加模式寫入:a
1)重新寫入:w
#重新寫入
read_ini.write(open("Database.ini"),'w')
2)追加模式寫入:a
#追加寫入
read_ini.write(open("Database.ini"),'a')
3)在ini檔案上追加寫入一項section內容
# 新增一個setion
read_ini.add_section("teacher_info")
print(read_ini.sections())
4)在ini檔案的section上新增option
# 往setion新增key和value
read_ini.set("info", "English", "Miss huang")
整體程式碼:
#1.導包
import configparser
#2建立物件
read_ini = configparser.ConfigParser()
#3. 新增一個setion
read_ini.add_section("info")
#4.列印所有的section
print(read_ini.sections())
#5.在section裡新增一個option
read_ini.set("info","English","Miss Huang")
#6.以追加的模式寫入
with open("Database.ini","a",encoding="utf-8") as fp:
fp.seek(2) #此處記得讓流的指標設定到檔案末尾,否則追加格式不好看
read_ini.write(fp)
執行後會發現ini檔案最後新增了寫入的內容: