如何使用C++讀取配置文件(ini)

#如何使用Python3讀取配置文件(ini)html

##ini文件簡介python

ini是咱們常見到的配置文件格式之一。git

ini是微軟Windows操做系統中的文件擴展名(也經常使用在其餘系統)。github

INI是英文「初始化(Initial)」的縮寫。正如該術語所表示的,INI文件被用來對操做系統或特定程序初始化或進行參數設置。操作系統

百度百科code

經過它,能夠將常常須要改變的參數保存起來(並且還可讀),使程序更加的靈活。htm

我先給出一個ini文件的示例。dns

[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設置參數。ip

下面將以生成和讀取這個配置文件爲例,進行講解。utf-8

##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官方參考文檔

14.2. configparser — Configuration file parser

本文MarkDown源文件和提到的示例程序源代碼,能夠在個人Github上獲取。

Github地址:https://github.com/flymaxty/OSChina_Blog

相關文章
相關標籤/搜索