91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現ini和yaml文件讀取

發布時間:2023-02-28 10:06:43 來源:億速云 閱讀:144 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Python如何實現ini和yaml文件讀取”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python如何實現ini和yaml文件讀取”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1. 引言

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

良好的配置管理應允許在任何環境中執行軟件而不更改代碼。最常見的配置包括數據庫認證配置、部署服務器的主機名、動態參數等。

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

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

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

  • 易于閱讀和編輯:它應該以文本為基礎,以易于理解的方式進行構建。即使是非開發人員也應該能夠閱讀。

  • 允許注釋:配置文件不是只有開發人員才能讀取的文件。當非開發人員試圖理解代碼行為時,注釋就顯得很重要。編寫注釋是快速解釋某些事情的一種方式,從而使配置文件更具表現力。

  • 易于部署:所有操作系統和環境都應接受該配置文件。

如果你仍然不知道哪一個更好,但是在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)

讀到這里,這篇“Python如何實現ini和yaml文件讀取”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

申扎县| 锡林郭勒盟| 晋宁县| 襄樊市| 阿城市| 南城县| 怀来县| 京山县| 沭阳县| 沿河| 衡水市| 滦南县| 安陆市| 浦城县| 东明县| 灵丘县| 增城市| 图木舒克市| 隆昌县| 进贤县| 夏津县| 宜兰市| 南陵县| 武汉市| 措勤县| 宁河县| 阿拉善右旗| 巴南区| 冕宁县| 探索| 广德县| 民乐县| 修武县| 新余市| 洞头县| 瑞安市| 涟水县| 吉林市| 秦皇岛市| 秦安县| 富裕县|