1. 程式人生 > >Python進階,ConfigParser:Python中對於ini格式的配置檔案的使用

Python進階,ConfigParser:Python中對於ini格式的配置檔案的使用

ConfigParser:配置檔案的讀取

原文連結和公眾號

更多文章教程:
Python雁橫(或者微信搜尋:py_0123),如果需要一個學習交流的地方可以加我的QQ群:719139688

介紹:

  • 今天想寫一篇文章來記錄一下在Python中ConfigParser這個模組的使用方法
  • ini格式的配置檔案無論是在Windows還是Linux這樣的作業系統中,都是十分常見的格式。常見的東西,python裡面往往都有一個支援它的東西

ini配置檔案簡介

  • 字尾不一定是ini,像inicfgconftxt都可以,本質上就是text文字檔案
  • ini配置檔案內容由,節,鍵(或者稱為選項),值三部分構成。
    • [section_1]
    • option_1 = value_1
    • option_2 = value_2
    • [section_2]
  • 另外有一個特殊的節(section),就是預設節(DEFAULT),可以省略,另外記住,大小寫的敏感的。
  • 註釋,在;後面的文字,直到結尾都是註釋
  • ini檔案示例:
;這是一段註釋
[DEFAULT]
option_1 = 1
[section_1]
option_2 = 2

ConfigParser模組簡介

匯入
from configparser import ConfigParser

#例項化一個物件
config = ConfigParser()
這個例項的方法
config.sections()  
#返回所有節點名稱(一個列表的形式),但是不包括DEFAULT
config.has_section(section)  
#查詢section(節點)是否存在
config.options(section)  
#返回指定節點(section)裡面的所有選項(鍵)
config.read(filenames,encoding=None)  
#閱讀並解析,filenames為一個包含檔名的列表,單個檔案也被允許,不存在的檔案被忽略,最後返回一個成功讀取的檔案列表
config.read_file(fn,source=None)  
#解析一個檔案物件(通俗的講就是你開啟一個檔案之後,這就是一個檔案物件)
config.read_string(string)  
#先將字串轉變問檔案物件,然後執行上面那個方法
config.dict(dictionary)  
#解析字典,字典裡面必須巢狀一個字典,如:
#{"section":{"option":"value"}}
config.get(section,option)  
#獲取具體的值
#這個後面的引數有點多,先不用管,只需要知道兩個引數即可
config.getint(section,option)  
#與get相同,只是將值轉變為int型別
config.getfloat(section,option)  
#與get相同,只是將值轉變為float型別
config.getboolean(section,option)  
#與get相同,只是將值轉變為bool型別
#0,false,no,off 都會轉變為 False
#1,true,yes,on 都會轉變為 True
#而且不分大小寫
config.items(section=_UNSET,raw=False,vars=None)  
#給出了section,則返回一個列表,裡面的值是由option,value組成的元祖
#否則,返回一個ItemsView物件(是一個字典)(估計還有生成器),組成為section(字串)為字典的鍵,節點物件為字典的值。
#還可以對值進行get操作
config.remove_section(section)  
#刪除給出的節點和所有選項
config.remove_option(section,option)  
#刪除某個選項
config.set(section,option,value)  
#設定給定選項
#必須在已有節點設定
#可以設定預設節點
config.write(fn,space_around_delimiters=True)  
#fn為一個檔案物件(open...),space_around_delimiters這個引數為True則等號兩邊有空格
defaults()
#是一個有序字典(有字典中絕大部分操作)
#鍵是option,值是value
OrderdDict([("option_1","value"),(...,...)])
add_section(section)
#增加節
#不可以新增DEFAULT和已存在的節,會報錯