㈠ 如何使用Python3讀取配置文件
ini是微軟Windows操作系統中的文件擴展名(也常用在其他系統)。
INI是英文「初始化(Initial)」的縮寫。正如該術語所表示的,INI文件被用來對操作系統或特定程序初始化或進行參數設置。通過它,可以將經常需要改變的參數保存起來(而且還可讀),使程序更加的靈活。
先給出一個ini文件的示例。
[School]
ip=10.15.40.123
mask=255.255.255.0
gateway=10.15.40.1
dns=211.82.96.1
[Match]
ip=172.17.29.120
mask=255.255.255.0
gateway=172.17.29.1
dns=0.0.0.0
這個配置文件中保存的是不同場合下的IP設置參數。
首先,Python讀取ini配置需要用到ConfigParser包,所以要先載入它。
importconfigparser
之後我們需要載入配置文件。
config=configparser.ConfigParser()
#IpConfig.ini可以是一個不存在的文件,意味著准備新建配置文件。
config.read("IpConfig.ini")
接下來,我們可以使用configparser.add_section()向配置文件中添加一個Section。
#添加節School
config.add_section("School")
注意:如果文件中已經存在相應的項目,則不能再增加同名的節。
然後可以使用configparser.set()在節School中增加新的參數。
#添加新的IP地址參數
config.set("School","IP","192.168.1.120")
config.set("School","Mask","255.255.255.0")
config.set("School","Gateway","192.168.1.1")
config.set("School","DNS","211.82.96.1")
你可以以同樣的方式增加其它幾項。
#由於ini文件中可能有同名項,所以做了異常處理
try:
config.add_section("Match")
config.set("Match","IP","172.17.29.120")
config.set("Match","Mask","255.255.255.0")
config.set("Match","Gateway","172.17.29.1")
config.set("Match","DNS","0.0.0.0")
exceptconfigparser.DuplicateSectionError:
print("Section'Match'alreadyexists")
增加完所有需要的項目後,要記得使用configparser.write()進行寫入操作。
config.write(open("IpConfig.ini","w"))
以上就是寫入配置文件的過程。
接下來我們使用configparser.get()讀取剛才寫入配置文件中的參數。讀取之前要記得讀取ini文件。
ip=config.get("School","IP")
mask=config.get("School","mask")
gateway=config.get("School","Gateway")
dns=config.get("School","DNS")
print((ip,mask+" "+gateway,dns)
下面是一個完整的示常式序,它將生成一個IpConfig.ini的配置文件,再讀取文件中的數據,輸出到屏幕上。
#-*-coding:utf-8-*-importconfigparser#讀取配置文件config=configparser.ConfigParser()config.read("IpConfig.ini")#寫入宿舍配置文件try:config.add_section("School")config.set("School","IP","10.15.40.123")config.set("School","Mask","255.255.255.0")config.set("School","Gateway","10.15.40.1")config.set("School","DNS","211.82.96.1")exceptconfigparser.DuplicateSectionError:print("Section'School'alreadyexists")#寫入比賽配置文件try:config.add_section("Match")config.set("Match","IP","172.17.29.120")config.set("Match","Mask","255.255.255.0")config.set("Match","Gateway","172.17.29.1")config.set("Match","DNS","0.0.0.0")exceptconfigparser.DuplicateSectionError:print("Section'Match'alreadyexists")#寫入配置文件config.write(open("IpConfig.ini","w"))ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+" "+gateway,dns))
㈡ 如何用python來修改配置文件conf
樓上的倆人回答綜合一下就是完美的答案,文件打開方式file.open。但是這種方式比較low,但是如果就是一簡單的讀寫文件用著方便,configparser是專門的conf庫,有一點點(只是一點點)學習成本,但是也很方便。推薦後者。