何使用Python3讀取配置文件(ini)
ini配置文件常被用作存儲程序中的一些參數,通過它程序可以變得更加靈活。本文講述了如何在Python3中使用ini配置文件。
ini文件簡介
ini是我們常見到的配置文件格式之一。
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(v3)讀取方法
首先,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)) 總結
Python讀取ini文件還是十分簡單的,這里我給出的只是一些簡單的使用方法,如果想用更高級的功能,比如和注釋有關的功能。可以參考Pyhton官方文檔
Python3官方參考文檔
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!