日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python中configparser详解_python ConfigParser模块详解

發(fā)布時(shí)間:2025/3/20 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中configparser详解_python ConfigParser模块详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

功能介紹

在程序中使用配置文件來靈活的配置一些參數(shù)是一件很常見的事情,配置文件的解析并不復(fù)雜,在python里更是如此,在官方發(fā)布的庫中就包含有做這件事情的庫,那就是ConfigParser,這里簡單的做一些介紹。

ConfigParser解析的配置文件的格式比較象ini的配置文件格式,就是文件中由多個(gè)section構(gòu)成,每個(gè)section下又有多個(gè)配置項(xiàng)。

方法介紹:

Class RawConfigParser([defaults])

基本配置類,當(dāng)傳遞defaults時(shí),會(huì)初始化到內(nèi)置字典中。該類不支持智能修復(fù),2.3版本新特征。

Class ConfigParser([defaults])

繼承之RawConfigParser類,實(shí)現(xiàn)了智能特性,為get(),items()方法添加了可選參數(shù)。Defaults中的值必須能填補(bǔ)“%()s”。注意__name__是內(nèi)置的default;該值是section的名稱,它會(huì)被defaults提供的任何值所覆蓋。

所以的用于填補(bǔ)的option名稱都會(huì)通過optionxform()方法傳遞,就像其他任何option名稱一樣。例如,使用optionxform()的默認(rèn)實(shí)現(xiàn)(將option名稱轉(zhuǎn)化成小寫),“foo %(bar)s”和“foo %(BAR)s”的值相等。

Class SafeConfigParser([defaults])

繼承至ConfigParser,實(shí)現(xiàn)了更多智能特征,實(shí)現(xiàn)更有可預(yù)見性,新的應(yīng)用更偏好這個(gè)版本,如果他們不需要對python老版本的兼容性,2.3版本。

Exception NoSectionError

當(dāng)沒有發(fā)現(xiàn)給定section時(shí)拋出。

Exception DuplicateSectionError

如果add_section()方法被調(diào)用時(shí),提供的section參數(shù)的值已經(jīng)存在時(shí)拋出。

Exception NoOptionError

指定option不存在時(shí)拋出。

Exception InterpolationError

執(zhí)行字符串填補(bǔ)時(shí)拋出的異常的基類。

Exception InterpolationDepthError

當(dāng)填補(bǔ)字符串因?yàn)榈螖?shù)超過了MAX_INTERPOLATION_DEPTH值時(shí)拋出的異常,InterpolationError的子類。

Exception InterpolationMissingOptionError

當(dāng)option引用的值不存在時(shí)拋出,該異常為InterpolationError的子類,2.3版本新加。

Exeption InterpolationSyntaxError

當(dāng)原文件格式?jīng)]有遵守規(guī)定的語法時(shí)拋出的異常,繼承至InterpolationError,2.3版本。

Exception MissingSectionHeaderError

嘗試解析沒有section頭的文件時(shí)拋出。

Exception ParsingError

解析文件時(shí)發(fā)生錯(cuò)誤。

MAX_INTERPOLATION_DEPTH

get()方法當(dāng)raw參數(shù)為false時(shí),遞歸的對大深度。只適用與ConfigParser類。

RawConfigParser對象

RawConfigParser實(shí)例的方法:

defaults()

返回全部示例中所以defaults。

sections()

返回有效的section列表,DEFAULT不包含在列表中。

add_section(section)

為實(shí)例添加一個(gè)section,如果給定的section名已經(jīng)存在,將拋出DuplicateSectionError異常。

has_section(section)

判斷給定的section名在配置文件中是否存在,DEFAULT section不包括。

options(section)

返回給定的section下的所有可用option的列表。

has_option(section, option)

如果section存在,并包含給定的option,返回true,放在返回false, 1.6版本新增。

read(filenames)

嘗試解析文件列表,如果解析成功返回文件列表。如果filenames是string或Unicode string,將會(huì)按單個(gè)文件來解析。如果在filenames中的文件不能打開,該文件將被忽略。這樣設(shè)計(jì)的目的是,讓你能指定本地有可能是配置文件的列表(例如,當(dāng)前文件夾,用戶的根目錄,及一些全系統(tǒng)目錄),所以在列表中存在的配置文件都會(huì)被讀取。如果文件都不存在,那么ConfigParser實(shí)例會(huì)包含空數(shù)據(jù)集。一個(gè)需要從配置文件讀取初始化數(shù)據(jù)的應(yīng)用程序,應(yīng)該使用readfp()方法來加載所需要的文件,之后可以使用read()方法來獲取任何可能的文件:

import ConfigParser, os config = ConfigParser.ConfigParser()config.readfp(open(‘defaults.cfg’)) config.read(['site.cfg', os.path.expanduser('~/.myapp.cfg')])

2.4版本之后,返回成功解析的文件列表。

readfp(fp[, filename])

從文件或fp(值使用該對象的readline()方法)中的似文件類讀取并解析配置數(shù)據(jù),如果filename被省略,fp有一個(gè)name屬性,該屬性用于獲取filename;默認(rèn)是“??>”。

get(section, option)

獲取section下option的值。

getint(section, option)

強(qiáng)制指定section下的option的值,作為Int類型返回的方便方法。

getfloat(section, option)

強(qiáng)制section下的option值,作為float類型返回的方法方法。

getboolean(section, option)

強(qiáng)制section下的option值,作為布爾類型返回的方法方法。注意可接受的option的true值有“1”,“yes”,“true”及“on”,可接受的false值有“0”,“no”,“false”,“off”。字符串值不檢測大小寫,其他值會(huì)拋出ValueError異常。

itmes(section)

返回給定section下的所以option的(name, value)對列表。

set(section, option, value)

如果給定的setion存在,為option設(shè)定給定的值;否則拋出NoSectionError異常。當(dāng)可能使用RawConfigParser(或者ConfigParser的參數(shù)raw為true)來在內(nèi)部存儲(chǔ)非字符串值,所以功能(包括填補(bǔ)和輸出到文件)只能使用字符串值來歸檔。1.6版本新增。

write(fileobject)

將配置表示寫入指定文件類,該表示以后可以通過調(diào)用read()來解析,1.6版本新增。

remove_option(section, option)

從指定section中刪除指定option,如果section不存在,拋出NoSectionError異常;如果option存在,則刪除,并返回True;否則返回false。1.6版本新增。

remove_section(section)

從配置文件中刪除指定的section,如果section確實(shí)存在,返回true,否則返回false。

optionxform(option)

將輸入文件中,或客戶端代碼傳遞的option名轉(zhuǎn)化成內(nèi)部結(jié)構(gòu)使用的形式。默認(rèn)實(shí)現(xiàn)返回option的小寫形式;子類可能重寫該方法或客戶端代碼可能將該方法作為實(shí)例的屬性,以此來影響它的行為。將此用于str(),例如,會(huì)使option名稱大小寫敏感。

ConfigParser對象

ConfigParser類擴(kuò)展了RawConfigParser的一些接口方法,添加了一些可選參數(shù)。

get(section, option [, raw[, vars]])

獲取給定section下的option的值,所以“%”占位符在返回值中被填補(bǔ),基于構(gòu)造時(shí)傳遞的默認(rèn)值,就像option,vars也被提供,除非raw參數(shù)為true。

items(section, [, raw[, vars]])

返回給定section下的所以option的(name, value)對列表。可選參數(shù)同get方法,2.3版本新增。

SafeConfigParser對象

SafeConfigParser類實(shí)現(xiàn)了ConfigParser相同的接口,新增如下方法:

set(section, option, value)

如果給定的section存在,給option賦值;否則拋出NoSectionError異常。Value值必須是字符串(str或unicode);如果不是,拋出TypeError異常,2.4版本新增。

實(shí)際應(yīng)用:

比如:

[db]

db_host=127.0.0.1

db_port=3306

db_user=root

db_pass=password

[concurrent]

thread=10

processor=20

假設(shè)上面的配置文件的名字為test.conf。里面包含兩個(gè)section,一個(gè)是db, 另一個(gè)是concurrent, db里面還包含有4項(xiàng),concurrent里面有兩項(xiàng)。這里來做做解析:

#-*-?encoding:?gb2312?-*-

import?ConfigParser

import?string,?os,?syscf?=?ConfigParser.ConfigParser()

cf.read(“test.conf”)

#?返回所有的section

s?=?cf.sections()

print?’section:’,?s

o?=?cf.options(“db”)

print?’options:’,?o

v?=?cf.items(“db”)

print?’db:’,?v

print?’-'*60

#可以按照類型讀取出來

db_host?=?cf.get(“db”,?”db_host”)

db_port?=?cf.getint(“db”,?”db_port”)

db_user?=?cf.get(“db”,?”db_user”)

db_pass?=?cf.get(“db”,?”db_pass”)

#?返回的是整型的

threads?=?cf.getint(“concurrent”,?”thread”)

processors?=?cf.getint(“concurrent”,?”processor”)

print?”db_host:”,?db_host

print?”db_port:”,?db_port

print?”db_user:”,?db_user

print?”db_pass:”,?db_pass

print?”thread:”,?threads

print?”processor:”,?processors

#修改一個(gè)值,再寫回去

cf.set(“db”,?”db_pass”,?”zhaowei”)

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的python中configparser详解_python ConfigParser模块详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美xxxx日本和非洲 | 欧美com | 日本免费黄色 | 中文字幕一区二区三区在线不卡 | 精品日韩在线视频 | 日韩a级黄色片 | 中文字幕素人 | 欧美a视频在线观看 | 91呦呦 | avav亚洲 | 国产三区在线视频 | 国产精品日韩一区二区三区 | 久久精品在线免费观看 | 精品 | 在线看中文字幕 | 久久久视频在线观看 | 日本一区二区久久 | 午夜精品极品粉嫩国产尤物 | 亚洲天堂麻豆 | 欧美色图校园春色 | 极品美女销魂一区二区三区 | 亚洲天堂免费在线观看视频 | 成年人的免费视频 | 久久久久久久久福利 | 欧美黑人又粗又大高潮喷水 | 134vcc影院免费观看 | 在线国产观看 | 午夜亚洲视频 | 日日干夜夜爱 | 男人的天堂网在线 | av网站久久 | 人人妻人人澡人人爽人人精品 | 国产精品国产精品国产专区蜜臀ah | 亚洲国产精品网站 | 狠狠干in | 亚洲熟女一区二区三区 | 精品国产aⅴ一区二区三区东京热 | 欧美一级激情 | 亚洲国产成人无码av在线 | 国产激情片 | 亚洲精品白浆高清久久久久久 | 国产在线无 | 欧美另类极品videosbest最新版本 | 久久a毛片 | 久热免费在线视频 | 天天干国产| 国产成人在线播放视频 | 森泽佳奈中文字幕 | 无码人妻精品一区二区蜜桃色欲 | 天天插天天射天天干 | 久久中文字幕一区 | 国产欧美日韩综合精品一区二区 | 国产精品毛片一区二区在线看舒淇 | 欧美亚洲激情视频 | 色欲久久久天天天精品综合网 | 无遮挡毛片 | 亚洲一区二区三区四区五区六区 | 福利视频99| 日本少妇色视频 | 清纯唯美亚洲色图 | 国产一级久久 | 成人av高清在线观看 | 神马午夜一区二区 | 2018av| 日本午夜在线视频 | 亚洲精品一区二区三区精华液 | 操女人免费视频 | 老子影院午夜伦不卡大全 | 欧美成人午夜剧场 | 四虎影视免费 | 欧美在线一区二区视频 | 国产成人久久77777精品 | 99爱免费视频 | 北条麻妃在线一区 | 日本成人午夜视频 | 福利小视频在线观看 | 免费在线播放黄色片 | 色www亚洲国产阿娇yao | 成人一区二区视频 | 五月天综合激情网 | 金鱼妻日剧免费观看完整版全集 | 蜜臀av免费一区二区三区水牛 | 黄色正能量网站 | 天天爽影院 | www.白虎 | 超碰色偷偷 | 国产综合精品一区二区三区 | 欧美日免费| 真实乱视频国产免费观看 | 可以看av的网站 | 中文字幕一区二区三区乱码在线 | 国产冒白浆 | 亚洲性影院| 日韩欧美在线中文字幕 | 蜜臀一区二区三区 | 99热在线只有精品 | 成人免费黄色 | 日本伦理一区二区 | 亚洲女同av |