欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python配置文件管理之ini和yaml文件讀取的實現

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

1. 引言

當我們設計軟件時,我們通常會花費大量精力來編寫高質量的代碼。但這往往還不夠,一個好的軟件還應該考慮其整個系統,如測試、部署、網絡等。其中最重要的一個方面是配置管理。

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

閑話少說,我們直接開始吧!

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

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

一個好的配置文件一般需要滿足以下三個標準:

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

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

3. INI文件示例

INI文件通常是最簡單的解決方案,由于它只有一個層次結構。然而,INI文件中沒有數據類型,所有內容都被編碼為字符串。
示例如下:

[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針對上述示例的相同配置如下所示。如下所示,YAML文件支持嵌套結構。此外,YAML也支持一些常見的數據類型,如字符串、整數、雙精度、布爾值、列表、字典等。

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文件

首先,我們來介紹Python專門為配置管理而設計的包,我們從內置的配置包Configureparser開始。

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

下面是上述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并不會猜測配置文件中的數據類型,因此每個配置項都被存儲為字符串。但它提供了一些將字符串轉換為正確數據類型的方法。這里面最有趣的是布爾類型,因為它能夠識別諸如yes/no、on/off、true/false和1/0的布爾值。

6. yaml文件讀取示例

Python有專門的內置包來解析yaml文件。由于安全性問題,建議使用yaml.safe_load()而不是yaml.load()來進行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. 總結

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

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

相關文章

  • Python3訪問并下載網頁內容的方法

    Python3訪問并下載網頁內容的方法

    這篇文章主要介紹了Python3訪問并下載網頁內容的方法,實例分析了Python頁面抓取及寫入文件的實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 解決Django部署設置Debug=False時xadmin后臺管理系統樣式丟失

    解決Django部署設置Debug=False時xadmin后臺管理系統樣式丟失

    這篇文章主要介紹了解決Django部署設置Debug=False時xadmin后臺管理系統樣式丟失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python的ini配置文件你了解嗎

    Python的ini配置文件你了解嗎

    這篇文章主要為大家詳細介紹了Python的ini配置文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python處理命令行參數模塊optpars用法實例分析

    Python處理命令行參數模塊optpars用法實例分析

    這篇文章主要介紹了Python處理命令行參數模塊optpars用法,結合實例形式分析了optpars模塊的功能,Python使用optpars模塊設置命令行參數相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python利用Matplotlib庫實現繪制餅形圖

    Python利用Matplotlib庫實現繪制餅形圖

    這篇文章主要為大家分享了基于python+matplotlib庫的餅形圖繪制,具體內容涉及一般的餅圖、分裂餅圖、以及環(huán)形圖,感興趣的小伙伴可以了解一下
    2022-04-04
  • Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法

    Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法

    這篇文章主要介紹了Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法,是ThreadingHTTPServer實現http服務中經常會遇到的問題,需要的朋友可以參考下
    2014-11-11
  • python3.7安裝matplotlib失敗問題的完美解決方法

    python3.7安裝matplotlib失敗問題的完美解決方法

    由于學習需要安裝matplotlib庫,閱讀網上教程后一直出現各種各樣的錯誤,下面這篇文章主要給大家介紹了關于python3.7安裝matplotlib失敗問題的完美解決方法,需要的朋友可以參考下
    2022-07-07
  • 一文詳解Python中l(wèi)ogging模塊的用法

    一文詳解Python中l(wèi)ogging模塊的用法

    logging是Python標準庫中記錄常用的記錄日志庫,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等。本文主要來和大家聊聊它的具體用法,希望對大家有所幫助
    2023-02-02
  • 在django項目中,如何單獨運行某個python文件

    在django項目中,如何單獨運行某個python文件

    這篇文章主要介紹了在django項目中單獨運行某個python文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 提升Python效率之使用循環(huán)機制代替遞歸函數

    提升Python效率之使用循環(huán)機制代替遞歸函數

    這篇文章主要介紹了提升Python效率之使用循環(huán)機制代替遞歸函數的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07

最新評論