首頁 >後端開發 >Python教學 >HOCON - .conf 檔案背後的秘密

HOCON - .conf 檔案背後的秘密

Susan Sarandon
Susan Sarandon原創
2024-12-28 01:25:17683瀏覽

HOCON - secret behind .conf files

HOCON(人類最佳化的設定物件表示法)是一種靈活且使用者友善的配置格式,經常在 .conf 檔案中使用。它基於 JSON 構建,但引入了多項增強功能,使其更易於閱讀且更易於使用。

主要特點:

  • 語法簡單:HOCON 允許寬鬆的語法: 字段之間的逗號是可選的。 鍵或字串並不總是需要引號。
  • 繼承:支援配置合併和繼承,支援基本配置的覆蓋或擴充。
  • 註解:與 JSON 不同,HOCON 支援註解(# 或 //),讓檔案更容易記錄。
  • 取代:它允許使用佔位符(${})進行變數替換以進行動態配置。
  • 簡潔性:支援多行字串、不帶引號的鍵和緊湊的物件定義。
  • 可擴展性:輕鬆與 Typesafe Config 庫等工具集成,常用於 Scala 和 Java 應用程序,尤其是 Akka 和 Play 等框架。

要與 python 中的 .conf 檔案互動 - 你需要 pyhocon 函式庫

pip 安裝 pyhocon

下面是在運行時建立設定檔的範例程式碼

from pyhocon import ConfigFactory, HOCONConverter
import json

# Create a configuration object
config = ConfigFactory.parse_string("""
app {
    name = "MyApp"
    version = "1.0.0"
    features = {
        enable_feature_x = true
        enable_feature_y = false
    }
    database {
        url = "jdbc:postgresql://localhost:5432/mydb"
        user = "db_user"
        password = "db_password"
    }
}
""")

# Save the configuration to a file
with open('config.conf', 'w') as file:
    file.write(HOCONConverter.convert(config, 'hocon'))
print("HOCON file created: config.conf")

您可以讀取以下建立的檔案

from pyhocon import ConfigFactory

# Load the configuration file
config = ConfigFactory.parse_file('config.conf')

# Access configuration values
app_name = config.get('app.name')
db_url = config.get('app.database.url')
enable_feature_x = config.get('app.features.enable_feature_x')

# Print configuration values
print(f"App Name: {app_name}")
print(f"Database URL: {db_url}")
print(f"Is Feature X Enabled? {enable_feature_x}")

所以輸出如下

HOCON file created: config.conf
App Name: MyApp
Database URL: jdbc:postgresql://localhost:5432/mydb
Is Feature X Enabled? True
  • 您可以藉助設定管理來標記功能。
  • 您可以定期刷新設定或公開 API 端點來刷新正在執行的應用程式的配置。

庫連結:https://github.com/chimpler/pyhocon

如果您覺得這有幫助,請留下 ? 讓我知道。或評論! ,或者如果您認為這篇文章可以幫助某人,請隨時分享!非常感謝! ?

以上是HOCON - .conf 檔案背後的秘密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn