最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python配置文件管理之ini和yaml文件讀取的實(shí)現(xiàn)

 更新時(shí)間:2023年02月28日 08:54:47   作者:趙卓不凡  
本文主要介紹了Python配置文件管理之ini和yaml文件讀取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 引言

當(dāng)我們?cè)O(shè)計(jì)軟件時(shí),我們通常會(huì)花費(fèi)大量精力來(lái)編寫高質(zhì)量的代碼。但這往往還不夠,一個(gè)好的軟件還應(yīng)該考慮其整個(gè)系統(tǒng),如測(cè)試、部署、網(wǎng)絡(luò)等。其中最重要的一個(gè)方面是配置管理。

良好的配置管理應(yīng)允許在任何環(huán)境中執(zhí)行軟件而不更改代碼。最常見的配置包括數(shù)據(jù)庫(kù)認(rèn)證配置、部署服務(wù)器的主機(jī)名、動(dòng)態(tài)參數(shù)等。在本文中,我想與大家分享一些配置管理的良好實(shí)踐,以及如何在Python中實(shí)現(xiàn)它們。

閑話少說(shuō),我們直接開始吧!

2. 如何選擇配置文件的格式

事實(shí)上,只要代碼能夠讀取和解析配置文件的內(nèi)容,那么配置文件的格式就沒有任何限制。但是,業(yè)內(nèi)有一些好的做法。最常見和標(biāo)準(zhǔn)化的格式是YAML、JSON、TOML和INI。

一個(gè)好的配置文件一般需要滿足以下三個(gè)標(biāo)準(zhǔn):

  • 易于閱讀和編輯:它應(yīng)該以文本為基礎(chǔ),以易于理解的方式進(jìn)行構(gòu)建。即使是非開發(fā)人員也應(yīng)該能夠閱讀。
  • 允許注釋:配置文件不是只有開發(fā)人員才能讀取的文件。當(dāng)非開發(fā)人員試圖理解代碼行為時(shí),注釋就顯得很重要。編寫注釋是快速解釋某些事情的一種方式,從而使配置文件更具表現(xiàn)力。
  • 易于部署:所有操作系統(tǒng)和環(huán)境都應(yīng)接受該配置文件。

如果你仍然不知道哪一個(gè)更好,但是在Python中,我推薦的答案將是YAML或INI。這是由于YAML和INI被大多數(shù)Python程序和包所接受。

3. INI文件示例

INI文件通常是最簡(jiǎn)單的解決方案,由于它只有一個(gè)層次結(jié)構(gòu)。然而,INI文件中沒有數(shù)據(jù)類型,所有內(nèi)容都被編碼為字符串。
示例如下:

[APP]
ENVIRONMENT = test
DEBUG = True
# Only accept True or False

[DATABASE]
USERNAME = xiaoxu
PASSWORD = xiaoxu
HOST = 127.0.0.1
PORT = 5432
DB = xiaoxu_database

4. YAML文件示例

使用YAML針對(duì)上述示例的相同配置如下所示。如下所示,YAML文件支持嵌套結(jié)構(gòu)。此外,YAML也支持一些常見的數(shù)據(jù)類型,如字符串、整數(shù)、雙精度、布爾值、列表、字典等。

APP:
? ENVIRONMENT: test
? DEBUG: True
? # Only accept True or False

DATABASE:
? USERNAME: xiaoxu
? PASSWORD: xiaoxu
? HOST: 127.0.0.1
? PORT: 5432
? DB: xiaoxu_database

5. 使用Cofigureparser讀取ini文件

首先,我們來(lái)介紹Python專門為配置管理而設(shè)計(jì)的包,我們從內(nèi)置的配置包Configureparser開始。

Configureparser主要用于讀取和寫入INI文件,但它也同樣支持字典和可迭代文件對(duì)象作為輸入。每個(gè)INI文件由多個(gè)部分組成,其中有多個(gè)鍵、值對(duì)。

下面是上述ini文件讀取的示例:

import configparser

def read_ini(file_path, config_json):
? ? config = configparser.ConfigParser()
? ? config.read(file_path)
? ? for section in config.sections():
? ? ? ? for key in config[section]:
? ? ? ? ? ? print((key, config[section][key]))
?
read_ini("source/data/sample.ini", config_json)
# ('environment', 'test')
# ('debug', 'True')
# ('username', 'xiaoxu')
# ('password', 'xiaoxu')
# ('host', '127.0.0.1')
# ('port', '5432')
# ('db', 'xiaoxu_database')

Configureparser并不會(huì)猜測(cè)配置文件中的數(shù)據(jù)類型,因此每個(gè)配置項(xiàng)都被存儲(chǔ)為字符串。但它提供了一些將字符串轉(zhuǎn)換為正確數(shù)據(jù)類型的方法。這里面最有趣的是布爾類型,因?yàn)樗軌蜃R(shí)別諸如yes/no、on/off、true/false和1/0的布爾值。

6. yaml文件讀取示例

Python有專門的內(nèi)置包來(lái)解析yaml文件。由于安全性問(wèn)題,建議使用yaml.safe_load()而不是yaml.load()來(lái)進(jìn)行yaml文件的讀取。
示例代碼如下:

import yaml

def read_yaml(file_path):
? ? with open(file_path, "r") as f:
? ? ? ? return yaml.safe_load(f)
data = read_yaml("data/sample.yaml")
print(data)

7. 總結(jié)

本文重點(diǎn)介紹了Python中配置文件的讀取,主要包括常見的ini和yaml兩種文件格式,并給出了相應(yīng)的代碼示例。

到此這篇關(guān)于Python配置文件管理之ini和yaml文件讀取的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python ini和yaml文件讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pandas提取數(shù)據(jù)的三種方式

    Pandas提取數(shù)據(jù)的三種方式

    本文主要介紹了Pandas提取數(shù)據(jù)的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的最短路徑(Dijkstra算法)完整實(shí)例

    Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的最短路徑(Dijkstra算法)完整實(shí)例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的最短路徑(Dijkstra算法),結(jié)合完整實(shí)例形式分析了Python圖的最短路徑算法相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • react中useLayoutEffect 和useEffect區(qū)別

    react中useLayoutEffect 和useEffect區(qū)別

    本文主要介紹了react中useLayoutEffect 和useEffect區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 關(guān)于ResNeXt網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)

    關(guān)于ResNeXt網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)

    今天小編就為大家分享一篇關(guān)于ResNeXt網(wǎng)絡(luò)的pytorch實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 淺述python中深淺拷貝原理

    淺述python中深淺拷貝原理

    Python中,對(duì)象的賦值,拷貝(深/淺拷貝)之間是有差異的,如果使用的時(shí)候不注意,就可能產(chǎn)生意外的結(jié)果,其實(shí)這個(gè)是由于共享內(nèi)存導(dǎo)致的結(jié)果,下面我們來(lái)簡(jiǎn)單談下Python中的深拷貝和淺拷貝。
    2018-09-09
  • python 寫一個(gè)水果忍者游戲

    python 寫一個(gè)水果忍者游戲

    這篇文章主要介紹了python 如何寫一個(gè)水果忍者游戲,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python模塊與C和C++動(dòng)態(tài)庫(kù)相互調(diào)用實(shí)現(xiàn)過(guò)程示例

    python模塊與C和C++動(dòng)態(tài)庫(kù)相互調(diào)用實(shí)現(xiàn)過(guò)程示例

    這篇文章主要為大家介紹了python模塊與C和C++動(dòng)態(tài)庫(kù)之間相互調(diào)用的實(shí)現(xiàn)過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 基于Python實(shí)現(xiàn)圖片主題色的提取

    基于Python實(shí)現(xiàn)圖片主題色的提取

    在?Groove?音樂(lè)中,當(dāng)我們改變歌曲時(shí),底部播放欄的顏色會(huì)隨專輯封面而變,這就是提取了主題色。本文將利用Python實(shí)現(xiàn)圖片主題色的提取,感興趣的可以了解一下
    2022-03-03
  • python實(shí)現(xiàn)可變變量名方法詳解

    python實(shí)現(xiàn)可變變量名方法詳解

    在本篇文章里小編給大家整理了關(guān)于python實(shí)現(xiàn)可變變量名的相關(guān)知識(shí)點(diǎn)內(nèi)容以及實(shí)例代碼,需要的朋友們參考下。
    2019-07-07
  • python虛擬環(huán)境遷移方法

    python虛擬環(huán)境遷移方法

    今天小編就為大家分享一篇python虛擬環(huán)境遷移方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

西乌珠穆沁旗| 方城县| 汾阳市| 三原县| 旺苍县| 荔浦县| 乳山市| 望谟县| 绥德县| 长顺县| 碌曲县| 化德县| 甘谷县| 尉犁县| 屏东市| 家居| 长武县| 济源市| 眉山市| 马鞍山市| 伊金霍洛旗| 永年县| 江门市| 安图县| 西丰县| 大埔县| 张家界市| 阿城市| 兴仁县| 吉林省| 东兰县| 来凤县| 五常市| 廉江市| 民丰县| 渝北区| 历史| 新乡市| 泾川县| 青冈县| 仁化县|