Python configparser標準庫簡介

2021-10-04 04:59:51 字數 3011 閱讀 4937

如果你要使用python處理類似ini這種格式的檔案,那麼肯定離不開configparser標準庫,它使用起來很簡單而且非常方便。下面就讓我們來看看吧。

讀寫ini檔案非常簡單,來看看下面的例子就明白了。首先要建立configparser的例項,使用它則非常簡單,基本上就和處理字典完全一樣。處理完畢之後,呼叫configparser的write方法並傳遞乙個檔案就可以將其儲存下來了。讀取時候更加簡單,直接向read方法傳遞檔名即可。

import configparser

config_filename =

'config.ini'

config = configparser.configparser(

)config[

'default']=

config[

'young']=

with

open

(config_filename,

'w', encoding=

'utf8')as

file

: config.write(

file

)config2 = configparser.configparser(

)config2.read(config_filename, encoding=

'utf8'

)for section in config2.sections():

print

(f''

)for key in config2[section]

:print

(f' = '

)'''

[default]

name = 易天

age = 30

gender = male

[young]

name = yitian

age = 20

'''

另外還有幾個read函式,用於從其他地方讀取配置。

所有的資料型別都是字串型別,如果你需要使用其他資料型別,需要自己手動轉換。不過你也可以使用get***函式來直接獲取某種型別的資料,這樣的函式有getint、getfloat、getbooloean,如果你需要的話,還可以自己新增自定義資料型別的處理函式。

print

(type

(config[

'default'][

'age'])

)print

(type

(int

(config[

'default'][

'age'])

))print

(type

(config[

'default'

].getint(

'age'))

)'''

'''

在獲取值的時候,假如沒有這個值,我們可以給get引數新增第二個值來獲得乙個備用值,這種方法對於getint、getfloat、getboolean方法等同樣適用。

但是如果配置檔案中存在default章節,而且預設章節設定了某個值的話,就會用這裡的預設值取代備用值,因此在使用的時候大家要注意一下。

配置檔案中可以引用其他選項,可以通過在configparser建構函式中傳入interpolation引數來進行控制。

c = configparser.configparser(

interpolation=configparser.extendedinterpolation())

c.read_string(s)

print

(c['young'][

'age'

])

預設的插入是configparser.basicinterpolation(),可以處理%(value)s格式的選項。這裡的第二個age的值會是yitian2.

[default]

name = yitian

age = 25

[young]

name = yitian2

age = %(name)s

還有一種是configparser.extendedinterpolation(),功能更強,可以引用其他章節的選項。它的格式是$。這裡的第二個age會是yitian,如果要引用本章節的選項,可以省去section:章節,只保留變數名。

[default]

name = yitian

age = 25

[young]

name = yitian2

age = $

如果不需要任何插入和轉換,可以直接將interpolation指定為none,這樣configparser就會原樣讀取字串。

c = configparser.configparser(interpolation=

none

)

configparser還包含了一些使用函式,在我們處理配置檔案的時候非常有用。

函式名作用

sections()

返回所有章節組成的列表,不包括預設章節

add_section(section)

新增乙個新的章節

has_section(section)

判斷該章節是否存在

options(section)

返回該章節下的所有選項列表

has_options(section,option)

判斷給定章節下是否存在某選項

remove_options(section,option)

刪除給定章節下的某個選項

remove_section(section)

刪除某個章節

還有一些函式不太常用,這裡我就不介紹了。對於大部分情況,其實上面這些已經足夠用了。

標準模板庫( ) 介紹標準模板庫

標準模板庫就是類與函式模板的大集合。stl共有6種元件 容器,容器介面卡,迭代器,演算法,函式物件和函式介面卡。1 容器 容器是用來儲存和組織其他物件的物件。stl容器類的模板在標準標頭檔案中定義。1 序列容器是上面圖中的前三類 容器的操作 2 deque容器 非常類似vector,且支援相同的操作...

C 命名空間,標準庫,標準模板庫

全域性空間與命名空間 我們在使用c 時,匯入標頭檔案一般有兩種形式,帶 h 和不帶 h 一般來說,不帶 h 的是c 的標準標頭檔案,帶的是c語言的,h 裡面定義的所有類以及物件都是在全域性空間裡,不帶的是在命名空間std裡面。c 要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做 string...

C 標準庫和C 標準模版庫

c 標準庫很大,在現在的情況下,c 標準庫確實越來越好,因為大的庫會包含大量的功能.標準庫中的功能越多,開發自己的應用程式時能借助的功能就越多,c 庫並非提供一切 很明顯的是沒有提供開發和圖形使用者介面的支援 但確實提供了很多.標準c 庫中主要有以下主要元件 標準c庫.i 0流技術.string.容...