ini是微軟Windows操作系統中的文件擴展名(也常用在其他系統)。
柯坪網站制作公司哪家好,找創新互聯建站!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。創新互聯建站于2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯建站。
INI是英文“初始化(Initial)”的縮寫。正如該術語所表示的,INI文件被用來對操作系統或特定程序初始化或進行參數設置。通過它,可以將經常需要改變的參數保存起來(而且還可讀),使程序更加的靈活。
先給出一個ini文件的示例。
1234567891011[School]ip = 10.15.40.123mask = 255.255.255.0gateway = 10.15.40.1dns = 211.82.96.1 [Match]ip = 172.17.29.120mask = 255.255.255.0gateway = 172.17.29.1dns = 0.0.0.0
這個配置文件中保存的是不同場合下的IP設置參數。
首先,Python讀取ini配置需要用到ConfigParser包,所以要先加載它。
1import configparser
之后我們需要載入配置文件。
1config=configparser.ConfigParser()
#IpConfig.ini可以是一個不存在的文件,意味著準備新建配置文件。
1config.read("IpConfig.ini")
接下來,我們可以使用configparser.add_section()向配置文件中添加一個Section。
#添加節School
1config.add_section("School")
注意:如果文件中已經存在相應的項目,則不能再增加同名的節。
然后可以使用configparser.set()在節School中增加新的參數。
#添加新的IP地址參數
1234config.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文件中可能有同名項,所以做了異常處理
12345678try: 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()進行寫入操作。
1config.write(open("IpConfig.ini", "w"))
以上就是寫入配置文件的過程。
接下來我們使用configparser.get()讀取剛才寫入配置文件中的參數。讀取之前要記得讀取ini文件。
12345ip=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的配置文件,再讀取文件中的數據,輸出到屏幕上。
1# -*- 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))
使用 內置 模塊:import configparser
import?os,?configparser,?time
cp?=?configparser.ConfigParser()
Settings?=?dict(
config_file?=?os.path.join(os.path.dirname(__file__),'monitor.conf'),
config?=?cp
)
def?reload():??#重置設置
cp?=?Settings['config']
cp.read(Settings['config_file'])
def?get(section,key,default=None):???#獲取section中的key對應的value
cp?=?Settings['config']
try:
value?=?cp.get(section,?key)
except?(configparser.NoSectionError,configparser.NoOptionError):
value?=?default
return?value
reload()
if?__name__=='__main__':
print(get('section1',?'key1'))
print(1)
time.sleep(5)
reload()
print(get('section',?'key1'))
1、說明:
python3使用configparser模塊來處理ini配置文件。
2、代碼示例:
需要生成conf.ini配置文件如下:
[config]
v1
=
100
v2
=
abc
v3
=
true
v4
=
123.45
python代碼:
import
configparser
#
加載現有配置文件
conf
=
configparser.ConfigParser()
#
寫入配置文件
conf.add_section('config')
#添加section
#
添加值
conf.set('config',
'v1',
'100')
conf.set('config',
'v2',
'abc')
conf.set('config',
'v3',
'true')
conf.set('config',
'v4',
'123.45')
#
寫入文件
with
open('conf.ini',
'w')
as
fw:
conf.write(fw)
#
讀取配置信息
v1
=
conf.getint('config',
'v1')
v2
=
conf.get('config',
'v2')
v3
=
conf.getboolean('config',
'v3')
v4
=
conf.getfloat('config',
'v4')
print('v1:',
v1)
print('v2:',
v2)
print('v3:',
v3)
print('v4:',
v4)
打開conf.ini文件檢查內容
3、模塊常用函數:
1)讀取配置文件
read(filename)
直接讀取ini文件內容
sections()
得到所有的section,并以列表的形式返回
options(section)
得到該section的所有option
items(section)
得到該section的所有鍵值對
get(section,option)
得到section中option的值,返回為string類型
getint(section,option)
得到section中option的值,返回為int類型,還有相應的getboolean()和getfloat()
函數。
2)寫入配置文件
add_section(section)
添加一個新的section
set(
section,
option,
value)
對section中的option進行設置,需要調用write將內容寫入配置文件。
官方文檔
從源碼看出,這個ini文檔,可以像字典一樣,使用“:”,但一般我們都使用“=”,并且值都不需要加引號
備注可以使用'#'或';',單獨一行,可縮進。
class ConfigParser(RawConfigParser):
class RawConfigParser(MutableMapping):
詳細看官網,不搬磚,列出幾個我自己常用的
標題名稱:ini函數python 函數 in
本文鏈接:http://m.kartarina.com/article42/dodshec.html
成都網站建設公司_創新互聯,為您提供微信小程序、標簽優化、品牌網站制作、全網營銷推廣、網站維護、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯