精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Python內置模塊處理ini配置文件

開發 后端
本文不僅學習了如何使用初始化文件結構訪問文件中的值,還學習了如何操作和擴展它們。此外,您還了解了configparser的插值功能以及如何根據需要使用它們。

 ?[[353166]]??

簡介

開發人員每天都在處理一些大型而復雜的項目, 而配置文件會幫到我們并節省不少時間。在處理配置文件過程中,無需更改源代碼本身,只需要調整配置文件即可訪問不同的API接口、更新基礎URL信息或其它事情。

盡管可以通過多種方式來支持軟件中的配置文件,包括JSON,YAML和純文本文件,但本文旨在向您介紹 Python 標準庫中的configparser模塊。

注意:本文基于Python 3.9.0(CPython)??梢栽贕itHub上找到源代碼。(??https://github.com/DahlitzFlorian/how-to-work-with-config-files-in-python-article-snippets??)

文件結構

在編寫代碼之前,讓我們看一下實際配置文件的結構。 

[DEFAULT] admin_page = no landing_page = yes moderator_page = no  # looks good here  [moderator] moderator_page = yes  [admin] admin_page = yes moderator_page = yes 

在當前的示例中,我們有一個名為config.ini的配置文件。它由三個部分組成,每個部分都由一個標題和一個鍵-值對列表組成,該標題封裝在方括號內。

moderator和admin模塊只是鍵值對的集合,但DEFAULT模塊(第一個模塊)有些特殊。如果其他模塊之一未提供某個鍵的值,則它就會包含默認值。因此,如果您想嘗試訪問其他模塊中的值,但該鍵不存在,則解析器將從默認部分(如果存在)中返回該值,而不是引發KeyError。

在本例中,我們通過此配置文件管理用戶的頁面訪問。因此,默認部分代表普通用戶的權限,而moderator和admin模塊分別包含協管員和管理員的權限。

訪問文件的內容

ConfigParser對象是主要的配置解析器和configparser模塊的主要對象。您可以使用映射協議實現自己的配置解析器,讓我們繼續看看本文中的ConfigParser。

盡管ConfigParser接受很多參數,但我們將使用本文的默認值。讓我們在工作目錄中創建一個名為parser_playground.py的新文件。首先,我們從configparser模塊導入ConfigParser類,并創建該類的實例。 

# parser_playground.py from configparser import ConfigParser  config = ConfigParser() 

我們的配置對象不包含任何信息, 要更改此設置,我們需要先讀取config.ini文件。這可以通過調用ConfigParser實例(此處為config)的read()方法來完成。 

# previous code in parser_playground.py config.read("config.ini") 

讀取配置文件后,我們可以開始探索如何訪問其中存儲的信息。首先,我們要列出所有可用的部分。這可以通過使用ConfigParser的sections()方法來實現: 

# previous code in parser_playground.py print(f"Sections: {config.sections()}")  # Sections: ['moderator', 'admin'] 

此外,我們可以使用解析器的has_section()方法檢查某個模塊是否存在: 

# previous code in parser_playground.py print(f'Does a section called "admin" exist: {config.has_section("admin")}')  # True print(f'Does a section called "user" exist: {config.has_section("user")}')  # False print(f'Does a section called "DEFAULT" exist: {config.has_section("DEFAULT")}')  # False 

注意:調用sections()方法時,既未列出默認模塊·,也沒有被has_section()方法確認。

接下來,我們要訪問各個值。但是在使用其標識符訪問特定值之前,我們可以使用options()方法列出一個模塊的所有可用選項,并提供模塊名作為參數: 

# Previous code in parser_playground.py print(f'Options: {config.options("admin")}')  # Options: ['admin_page', 'moderator_page', 'landing_page'] 

此外,我們可以利用has_option()方法來檢查給定部分是否包含某個選項: 

# Previous code in parser_playground.py print(f'"admin_page" in "admin" section: {config.has_option("admin", "admin_page")}') 

要訪問模塊的值,可以使用解析器的get()方法并提供區域名稱和選項名稱。這些值將始終為字符串(如果存在)。如果需要其他格式的文件,請考慮使用相應的getboolean(),getint()和getfloat()方法。他們將嘗試將字符串解析為所需的數據類型。

總結本節內容時有個概念需要提到,它就是映射協議訪問。這個通用名稱意味著可以像處理字典一樣訪問值。也就是說,我們可以使用config [“ section”] [“ option”]類似的方法來訪問某個值,甚至檢查某個模塊中是否存在某個選項: 

# Previous code in parser_playground.py print("admin_page" in config["admin"])  # True print(config["admin"]["admin_page"])  # yes 

如何修改信息

接下來,讓我們看一下如何添加或更改信息并將其寫回到配置文件中。同樣,我們從模塊開始。要添加一個模塊,我們可以使用ConfigParser的add_section()方法。它接受模塊名稱作為字符串,并將相應模塊添加到解析器。提供不同的數據類型會導致TypeError。如果該模塊已經存在,則會引發DuplicateSectionError。嘗試將該模塊命名為默認值會導致ValueError。 

# Previous code in parser_playground.py config.add_section("unknown") print(f'Sections: {config.sections()}')  # Sections: ['moderator', 'admin', 'unknown'] 

要刪除一個模塊,只需使用remove_section()方法。 

# Previous code in parser_playground.py config.remove_section("unknown") print(f'Sections: {config.sections()}')  # Sections: ['moderator', 'admin'] 

Python的ConfigParser對象提供了類似的操作選項的方法。例如,調用set()方法,不僅可以向模塊添加新選項,還可以更新現有選項。同樣,如果您想完全刪除某個選項,請使用解析器的remove_option()方法。 

# Previous code in parser_playground.py config.set("admin", "admin_page", "false") config.remove_option("admin", "moderator_page") print(f'Options in "admin" section: {config.items("admin")}') 

處理完配置后,我們可以將其寫回到相同或不同的文件,如下所示: 

# Previous code in parser_playground.py with open("config1.ini", "w") as f:     config.write(f) 

插值

最后但也很重要的一點,讓我們看一下使ConfigParser優于Python的json模塊的東西:插值。插值意味著可以在調用某些get()方法返回值之前對其進行預處理。configparser模塊提供兩個插值類:BasicInterpolation和ExtendedInterpolation。第一個只允許重用配置文件中同一模塊中的選項,并且其語句不如后一個類的語句漂亮。這就是為什么我們只用ExtendedInterpolation類。

以下代碼段顯示了使用Extended Interpolation語句的配置文件。 

# interpolation_config.ini [paths] root_dir = /home/florian downloads_dir = ${root_dir}/Downloads  [destinations] app_dir = ${paths:downloads_dir}/application/python 

本質上,第一個模塊定義了根目錄的路徑。該路徑用作第二個選項的前綴,即下載目錄的路徑。在第二個模塊中,我們有一個選項app_dir,它重用了pahts模塊中對downloads目錄的定義。

為了掌握這一點,我們在實例化解析器時讓ConfigParser使用ExtendedInterpolation作為插值類型: 

# interpolation.py from configparser import ConfigParser from configparser import ExtendedInterpolation  config = ConfigParser(interpolation=ExtendedInterpolation()) config.read("interpolation_config.ini") 

如果現在打印destinations模塊的app_dir選項的值,則會得到一個插值字符串。 

# Previous code in interpolation.py print(config.get("destinations", "app_dir")) 


$ python interpolation.py /home/florian/Downloads/application/python 

概要 

本文不僅學習了如何使用初始化文件結構訪問文件中的值,還學習了如何操作和擴展它們。此外,您還了解了configparser的插值功能以及如何根據需要使用它們。

責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2010-02-03 09:19:31

Python模塊

2021-07-13 05:47:40

GroovyJSON軟件開發

2024-03-19 08:05:00

C# WinForm文件開發

2021-07-05 12:09:58

Python編程語言

2021-12-02 18:15:39

網絡庫Ratel設計

2024-04-26 08:11:29

.NETJSONXML

2011-01-19 14:00:21

2011-01-13 16:27:26

Linux配置文件

2022-07-25 11:33:48

Python大文件

2010-12-28 16:35:32

Outlook 配置文

2010-12-27 14:59:31

Outlook 配置文

2010-03-18 18:17:01

Python 配置文件

2011-03-28 15:52:16

Nagios配置文件

2011-03-03 09:14:38

PureFTPd

2011-04-01 16:30:49

Nagios

2009-07-09 15:55:18

WebWork配置文件

2011-03-28 09:07:26

Nagios配置文件

2011-03-25 17:13:37

Nagios配置文件

2011-01-21 15:08:45

Sendmail

2009-06-17 14:10:30

Spring配置文件
點贊
收藏

51CTO技術棧公眾號

国精品无码人妻一区二区三区| 欧美视频1区| 欧美一区二区三区爽爽爽| 影音先锋欧美激情| 色诱亚洲精品久久久久久| 影音先锋男人的网站| 五月婷婷六月丁香| 久99久精品视频免费观看| 久久久久久久亚洲精品| 国产又粗又猛又爽又黄av| av不卡一区二区| 精品视频999| 久久精品免费一区二区| 国产婷婷视频在线| 久久伊99综合婷婷久久伊| 成人伊人精品色xxxx视频| av大全在线观看| 亚洲一区二区三区| 亚洲天堂av网| 污污内射在线观看一区二区少妇| 福利一区二区免费视频| 午夜欧美一区二区三区在线播放| 成人手机视频在线| 黄色国产在线| 99视频国产精品| 91在线观看免费高清| 国产性生活视频| 亚洲人成在线影院| 欧美裸体xxxx极品少妇| 99热6这里只有精品| 免费av一区| 亚洲激情第一页| 18禁一区二区三区| 国产精品亚洲欧美一级在线| 欧美日韩国产一区| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 欧美精品videosex| 亚洲日本电影在线| 亚洲精品偷拍视频| 日本不卡三区| 中国av一区二区三区| 欧美人xxxxx| 神马电影在线观看| 99re成人精品视频| 国产一区在线观| 人妻少妇精品无码专区| 国产一区二区影院| 亚洲一区二区三区乱码aⅴ| 成人黄色免费网| 欧美丰满少妇xxxxx做受| 在线免费观看视频| 极品美女一区二区三区| 国产视频亚洲精品| 美女又爽又黄视频毛茸茸| 精品亚洲自拍| 国产视频丨精品|在线观看| 日本免费福利视频| 国产精品一区2区3区| 亚洲精品永久免费精品| 免费观看av网站| 国产剧情一区| 一本一本久久a久久精品牛牛影视| 怡红院一区二区三区| 日韩精品久久久久久久电影99爱| 在线观看日韩专区| 成人在线观看免费完整| 欧美激情四色| 欧美精品福利在线| 亚洲另类欧美日韩| 日韩在线观看一区二区| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | av在线免费观看网址| 亚洲精品老司机| 青青草成人免费在线视频| 在线免费日韩片| 欧美三级中文字幕| 美女被艹视频网站| 日韩精品福利一区二区三区| 国产亚洲xxx| 一级性生活免费视频| 欧美先锋影音| 欧美亚洲在线播放| 亚洲天堂手机版| 国产999精品久久| 美日韩免费视频| 日本在线观看网站| 午夜久久福利影院| 韩国日本美国免费毛片| 日韩精品一区国产| 亚洲欧美中文另类| 中文字幕另类日韩欧美亚洲嫩草| 亚洲高清av| 国产欧美中文字幕| 免费观看国产精品| 国产精品嫩草99a| 精品一区二区三区无码视频| 性欧美videohd高精| 欧美一区日韩一区| 精品国产av无码| 韩日视频一区| 国产免费亚洲高清| 天堂中文字幕在线| 亚洲女人小视频在线观看| 韩国日本在线视频| 亚洲图色一区二区三区| 中文日韩电影网站| 国产精品午夜影院| 丁香天五香天堂综合| 亚洲国产激情一区二区三区| 蜜桃麻豆影像在线观看| 91精品国产欧美日韩| 一区二区精品免费| 一区在线观看| 亚洲aⅴ男人的天堂在线观看| 久久综合九色综合久| 一区二区三区免费在线观看| 天天干天天操天天玩| 日韩电影不卡一区| 欧美激情性做爰免费视频| 一级黄色大毛片| 日本一区二区三区国色天香 | 日韩欧美亚洲日产国产| 9999热视频在线观看| 91精品在线观看入口| 1024手机在线观看你懂的| 亚洲日本久久| 亚洲最大的免费| 欧美高清视频| 欧美日韩大陆一区二区| 微拍福利一区二区| 狂野欧美性猛交xxxx巴西| 精品国产综合| 超碰激情在线| 亚洲国产成人久久综合一区| 欧美被狂躁喷白浆精品| 韩国三级电影一区二区| 亚洲午夜精品一区二区| 高清av一区二区三区| 亚洲人成在线免费观看| 日本视频在线观看免费| 91美女精品福利| 国产视频九色蝌蚪| 日韩三区视频| 国产91色在线免费| 国产高清视频在线播放| 在线观看亚洲一区| 日本成人免费视频| 毛片av一区二区| 亚洲精品一区二区三区四区五区| 日韩制服一区| 久久精品99久久久香蕉| 国产99对白在线播放| 一区二区三区免费网站| 88av在线播放| 国产精品久久久久久久免费软件| 欧美激情一区二区三区在线视频| 亚洲一区站长工具| 一区二区在线视频播放| 一区二区三区日| 亚洲激情五月婷婷| 欧美肉大捧一进一出免费视频 | 亚洲欧美国产日韩综合| 国产精品麻豆久久| 国产成人精品福利一区二区三区| av资源网在线播放| 亚洲欧美日韩中文在线| 亚洲视频一区在线播放| 亚洲欧美二区三区| aaaaaav| 老牛影视一区二区三区| 亚洲二区三区四区| 日韩精品一区二区三区中文| 97在线看福利| 人人干在线视频| 精品捆绑美女sm三区| 中文字幕69页| 亚洲品质自拍视频| 成人无码www在线看免费| 日韩中文字幕麻豆| 高清无码视频直接看| 亚洲精品亚洲人成在线| 91精品视频在线| 超碰激情在线| 久久精品99无色码中文字幕| 免费国产羞羞网站视频| 欧美色综合影院| 日本少妇毛茸茸高潮| 欧美激情综合在线| 国产性生活毛片| 美女视频黄a大片欧美| 久久综合久久网| 成人久久综合| 国产亚洲欧美另类一区二区三区| 成人一区视频| 57pao国产成人免费| 高潮毛片在线观看| 亚洲天堂av在线免费观看| 亚洲欧美强伦一区二区| 欧美色网一区二区| 免费在线不卡视频| 亚洲乱码国产乱码精品精的特点 | 99九九99九九九99九他书对| 日韩视频一区| 日本一道在线观看| 成人区精品一区二区婷婷| 国产伦精品一区二区三区视频孕妇| 日韩精品影院| 午夜精品免费视频| av片在线观看| 久久精品久久久久久国产 免费| 日韩一区av| 亚洲大胆人体视频| 国产精品丝袜黑色高跟鞋| 色国产精品一区在线观看| 亚洲国产精一区二区三区性色| 亚洲你懂的在线视频| 成人影视免费观看| 波多野结衣中文字幕一区| 一二三av在线| 久久99久国产精品黄毛片色诱| 妺妺窝人体色www在线小说| 好看的日韩av电影| 欧美爱爱视频网站| 日韩精品诱惑一区?区三区| 欧美区高清在线| 伊人春色之综合网| 精品国产区在线| 第一区第二区在线| 国产精品yjizz| 色悠久久久久综合先锋影音下载 | 激情亚洲另类图片区小说区| 91免费版黄色| 欧美高清一级片| 91热精品视频| 国产精品日本一区二区不卡视频| 国产综合香蕉五月婷在线| 欧美色片在线观看| 国产精品吹潮在线观看| 992tv国产精品成人影院| 国产精品91久久久久久| 自拍偷自拍亚洲精品被多人伦好爽| 91精品国产九九九久久久亚洲| 超碰在线视屏| 清纯唯美亚洲综合| 国产精品av一区二区三区| 欧美一级电影久久| 午夜无码国产理论在线| 国产精品第8页| 国产精品99久久久久久董美香| 国产精品美女免费看| 久久人体av| 成人免费大片黄在线播放| 国产精品久久久久久久久久辛辛 | 欧美日韩精品一区视频| 91麻豆成人精品国产| 91精品久久久久久久久99蜜臂| 国产乱淫a∨片免费视频| 欧美一区二区三区电影| 亚洲精品视频专区| 国产视频久久久久| 成人在线二区| 久久人人爽人人爽人人片亚洲| 亚洲羞羞网站| 69久久夜色精品国产69| 婷婷激情一区| 成人免费网站在线| 国偷自产视频一区二区久| 欧美成人一区二区在线| 97精品国产一区二区三区| 91传媒免费视频| 亚洲一区久久| 91欧美视频在线| 国产**成人网毛片九色| 色噜噜日韩精品欧美一区二区| 中文字幕欧美激情一区| www.xxxx日本| 福利二区91精品bt7086| 91麻豆国产在线| 亚洲精品456在线播放狼人| 国产高清一级毛片在线不卡| 欧美久久久精品| 亚洲精品国产精品国产| 成人网址在线观看| 特黄特色欧美大片| youjizz.com亚洲| 亚洲欧美高清| 国产精品探花在线播放| 91理论电影在线观看| 天天爽天天爽天天爽| 婷婷丁香久久五月婷婷| 国产乱淫片视频| 日韩精品亚洲元码| 色操视频在线| 国产精品免费网站| 国产另类在线| 国产三级中文字幕| 丝袜诱惑制服诱惑色一区在线观看 | 美女任你摸久久| 国产精品久久久免费观看| 国产精品国产自产拍高清av王其| 日韩欧美高清在线观看| 91精品国产高清一区二区三区蜜臀| 亚洲日本在线播放| 久久综合久中文字幕青草 | 成人两性免费视频| 欧美猛男男男激情videos| 日韩专区第三页| 免费观看在线色综合| 亚洲乱码国产乱码精品精大量| 亚洲欧美精品午睡沙发| 真实新婚偷拍xxxxx| 亚洲精品第一页| 伊人电影在线观看| 91精品免费视频| 国产91精品免费| 国产欧美一区二区精品久导航 | 欧美最猛性xxxxx亚洲精品| 玖玖玖视频精品| 亚洲欧美99| 日本午夜精品视频在线观看 | 国产做受高潮69| 久久69av| 国产奶头好大揉着好爽视频| 人人狠狠综合久久亚洲| 9.1成人看片免费版| 午夜欧美视频在线观看| 丰满熟妇乱又伦| 欧美精品日韩www.p站| www一区二区三区| 亚洲一区二区三区乱码| 蜜桃视频一区二区三区在线观看| 美女洗澡无遮挡| 日韩欧美国产视频| 秋霞av在线| 国产91在线播放九色快色| 偷拍一区二区| 中文字幕无码不卡免费视频| 久久久精品中文字幕麻豆发布| 羞羞影院体验区| 亚洲欧美中文另类| 一级一级黄色片| 乱人伦精品视频在线观看| 色一情一区二区| 国产精品久久久久一区| 一级特黄色大片| 日韩午夜在线视频| 国产精品99久久免费| 大桥未久一区二区| 粉嫩高潮美女一区二区三区| 久久这里只有精品国产| 日韩欧美高清一区| gogo久久| 久久精品日韩| 日韩电影在线看| 亚洲激情图片网| 欧美一区二区成人| 调教一区二区| 国语精品中文字幕| 丝袜美腿亚洲色图| 日本高清黄色片| 宅男在线国产精品| 羞羞网站在线免费观看| 国产日韩一区二区| 久久黄色网页| 精品伦精品一区二区三区视频密桃 | 国产亚洲日本欧美韩国| 久久久久伊人| 成人午夜视频免费观看| 97se亚洲国产综合在线| 波多野结衣人妻| 另类色图亚洲色图| 久久97久久97精品免视看秋霞| 国产主播在线看| 国产精品黄色在线观看| 丰满少妇被猛烈进入| 日韩av123| 伊人青青综合网| 成人免费无码大片a毛片| 在线观看欧美日本| 欧美aaaaaaa| 欧美日韩三区四区| 韩国三级在线一区| 亚洲精品国产精品乱码| 在线丨暗呦小u女国产精品| 久久99成人| 蜜臀视频一区二区三区| 亚洲色图都市小说| 欧美日韩国产综合视频| 亚洲综合精品伊人久久| 欧美一区=区| 欧美日韩国产精品综合 | 黄网页在线观看| 欧美高清视频一区| 韩国三级中文字幕hd久久精品| 亚洲免费在线观看av| 久久av红桃一区二区小说| 久久99蜜桃| 国产精品久久久久久亚洲色| 精品视频在线免费看| 绿色成人影院|