Python進階:在Python中讀取ini、conf、cfg格式的配置文件

為什麼需要ini文件

  1. 我們可能希望用戶可以自己修改參數,或者希望在不改動源碼的情況下改變程序的運行,那麼配置文件就不可以缺少了。
  2. 配置文件在我們平常的開發和使用中是難免會遇到的,而ini格式的文件更是非常常見的一種。雖然說ini格式,但實際上還有ini,cfg,conf,txt等等這些後綴也可以是ini格式的配置文件。前提是符合ini格式要求。
Python進階:在Python中讀取ini、conf、cfg格式的配置文件

原文鏈接:

如果由於排版問題不利於觀看,可以在有道雲筆記中查看,以下是鏈接:

http://note.youdao.com/noteshare?id=dfec323b2c6509d7189453ec730b3870&sub=7D7493D6D746490BA55C0997FF1BC465

ConfigParser:配置文件的讀取

介紹:

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

ini配置文件簡介

  • 後綴不一定是ini,像ini,cfg,conf,txt都可以,本質上就是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和已存在的節,會報錯


分享到:


相關文章: