<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
有些時候在專案中,使用組態檔來設定一些靈活的引數是比較常見的事,因為這會使得程式碼的維護變得更方便。而ini組態檔是比較常用的一種,今天介紹用ConfigParser模組來解析ini組態檔。
# 這是註釋 ; 這也是註釋 [section1] name = wang age = 18 heigth = 180 [section2] name = python age = 19
configparser模組為Python自帶模組不需要單獨安裝,但要注意,在Python3中的匯入方式與Python2的有點小區別
# python2 import ConfigParser # python3 import configparser
import configparser import os # 建立物件 config = configparser.ConfigParser() dirPath = os.path.dirname(os.path.realpath(__file__)) inipath = os.path.join(dirPath,'test.ini') # 讀取組態檔,如果組態檔不存在則建立 config.read(inipath,encoding='utf-8')
secs = config.sections() print(secs)
輸出結果:
['section1', 'section2']
option = config.options('section1') print(option)
輸出結果:
['name', 'age', 'heigth']
item_list = config.items('section2') print(item_list)
輸出結果:
[('name', 'python'), ('age', '19')]
val = config.get('section1','age') print('section1的age值為:',val)
輸出結果:
section1的age值為: 18
Attributes = config.getint('section2','age') print(type(config.get('section2','age'))) print(type(Attributes)) # Attributes2 = config.getboolean('section2','age') # Attributes3 = config.getfloat('section2','age')
輸出結果:
<class 'str'>
<class 'int'>
has_sec = config.has_section('section1') print(has_sec) has_opt = config.has_option('section1','name') print(has_opt)
輸出結果:
TrueTrue
if not config.has_section('node1'): config.add_section('node1') # 不需判斷key存不存在,如果key不存在則新增,若已存在,則修改value config.set('section1','weight','100') # 將新增的節點node1寫入組態檔 config.write(open(inipath,'w')) print(config.sections()) print(config.options('section1'))
輸出結果:
['section1', 'section2', 'node1']
[('name', 'wang'), ('age', '18'), ('heigth', '180'), ('weight', '100')]
# 刪除option print('刪除前的option:',config.items('node1')) config.remove_option('node1','dd') # 將刪除節點node1後的內容寫回組態檔 config.write(open(inipath,'w')) print('刪除後的option:',config.items('node1'))
輸出結果:
刪除前的option: [('dd', 'ab')]
刪除後的option: []
# 刪除section print('刪除前的section: ',config.sections()) config.remove_section('node1') config.write(open(inipath,'w')) print('刪除後的section: ',config.sections())
輸出結果:
刪除前的section: ['section1', 'section2', 'node1']
刪除後的section: ['section1', 'section2']
1、write寫入有兩種方式,一種是刪除原始檔內容,重新寫入:w
config.write(open(inipath,'w'))
另一種是在原文基礎上繼續寫入內容,追加模式寫入:a
config.write(open(inipath,'a'))
需要注意的是,config.read(inipath,encoding='utf-8')
只是將檔案內容讀取到記憶體中,即使經過一系列的增刪改操作,只有執行了以上的寫入程式碼後,操作過的內容才會被寫回檔案,才能生效。
到此這篇關於Python中ConfigParser模組詳談的文章就介紹到這了,更多相關Python中ConfigParser模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45