當前位置:編程學習大全網 - 編程語言 - 如何使用Python3讀取配置文件

如何使用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包,所以要先加載它。

import?configparser

之後我們需要載入配置文件。

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")

except?configparser.DuplicateSectionError:

print("Section?'Match'?already?exists")

增加完所有需要的項目後,要記得使用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+"\n"+gateway,dns)

下面是壹個完整的示例程序,它將生成壹個IpConfig.ini的配置文件,再讀取文件中的數據,輸出到屏幕上。

#?-*-?coding:?utf-8?-*-import?configparser#讀取配置文件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")except?configparser.DuplicateSectionError:print("Section?'School'?already?exists")#寫入比賽配置文件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")except?configparser.DuplicateSectionError:print("Section?'Match'?already?exists")#寫入配置文件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+"\n"+gateway,dns))

  • 上一篇:如何用matlab做牛頓叠代法?
  • 下一篇:信息安全管理體系
  • copyright 2024編程學習大全網