python解析.ini文件--configparser模塊(內置)


第一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文件最后新增了寫入的內容:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM