校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用 Python 解析配置文件格式

使用 Python 解析配置文件格式

熱門標簽:銀川電話機器人電話 電銷機器人錄音要學習什么 長春極信防封電銷卡批發 預覽式外呼系統 外賣地址有什么地圖標注 煙臺電話外呼營銷系統 上海正規的外呼系統最新報價 如何地圖標注公司 企業彩鈴地圖標注

第一步是選擇配置文件的格式:INI、JSON、YAML 或 TOML。

有時,程序需要足夠的參數,將它們全部作為命令行參數或環境變量既不讓人愉快也不可行。 在這些情況下,你將需要使用配置文件。

有幾種流行的配置文件格式。其中包括古老的(雖然有時定義不明確)INI 格式,雖然流行但有時難以手寫的 JSON 格式,使用廣泛但有時在細節方面令人意外的 YAML 格式,以及很多人還沒有聽說過的最新出現的 TOML。

你的首要任務是選擇一種格式,然后記錄該選擇。解決了這個簡單的部分之后就是時候解析配置了。

有時,在配置中擁有一個與“抽象“數據相對應的類是一個不錯的想法。因為這段代碼不會對配置做任何事情,所以這是展示解析邏輯最簡單的方式。

想象一下文件處理器的配置:它包括一個輸入目錄、一個輸出目錄和要提取的文件。

配置類的抽象定義可能類似于:

from__future__import annotations
import attr
 
@attr.frozen
class Configuration:
 @attr.frozen
 class Files:
input_dir:str
output_dir:str
files: Files
 @attr.frozen
 class Parameters:
patterns: List[str]
parameters: Parameters

為了使特定于格式的代碼更簡單,你還需要編寫一個函數來從字典中解析此類。請注意,這假設配置將使用破折號,而不是下劃線。 這種差異并不少見。

def configuration_from_dict(details):
    files = Configuration.Files(
        input_dir=details["files"]["input-dir"],
        output_dir=details["files"]["output-dir"],
    )
    parameters = Configuration.Paraneters(
        patterns=details["parameters"]["patterns"]
    )
    return Configuration(
        files=files,
        parameters=parameters,
    )

JSON

JSON(JavaScript Object Notation)是一種類似于 JavaScript 的格式。

以下是 JSON 格式的示例配置:

json_config = """
{
    "files": {
        "input-dir": "inputs",
        "output-dir": "outputs"
    },
    "parameters": {
        "patterns": [
            "*.txt",
            "*.md"
        ]
    }
}
"""

解析邏輯使用 json 模塊將 JSON 解析為 Python 的內置數據結構(字典、列表、字符串),然后從字典中創建類:

import json
def configuration_from_json(data):
    parsed = json.loads(data)
    return configuration_from_dict(parsed)

INI

INI 格式,最初只在 Windows 上流行,之后成為配置標準格式。

這是與 INI 相同的配置:

ini_config="""
[files]
input-dir = inputs
output-dir = outputs
 
[parameters]
patterns = ['*.txt', '*.md']
"""

Python 可以使用內置的 configparser 模塊解析它。解析器充當類似  dict 的對象,因此可以直接傳遞給  configuration_from_dict :

import configparser
 
def configuration_from_ini(data):
parser=configparser.ConfigParser()
parser.read_string(data)
 return configuration_from_dict(parser)

YAML

YAML(Yet Another Markup Language)是 JSON 的擴展,旨在更易于手動編寫。為了實現了這一點,部分原因是有一個很長的規范。

以下是 YAML 中的相同配置:

yaml_config = """
files:
  input-dir: inputs
  output-dir: outputs
parameters:
  patterns:
  - '*.txt'
  - '*.md'
"""

要讓 Python 解析它,你需要安裝第三方模塊。最受歡迎的是 PyYAML ( pip install pyyaml )。 YAML 解析器還返回可以傳遞給  configuration_from_dict 的內置 Python 數據類型。但是,YAML 解析器需要一個字節流,因此你需要將字符串轉換為字節流。

import io
import yaml
def configuration_from_yaml(data):
    fp = io.StringIO(data)
    parsed = yaml.safe_load(fp)
    return configuration_from_dict(parsed)

TOML

TOML(Tom's Own Markup Language)旨在成為 YAML 的輕量級替代品。其規范比較短,已經在一些地方流行了(比如 Rust 的包管理器 Cargo 就用它來進行包配置)。

這是與 TOML 相同的配置:

toml_config= """
[files]
input-dir = "inputs"
output-dir = "outputs"
 
[parameters]
patterns = [ "*.txt", "*.md",]
"""

為了解析 TOML,你需要安裝第三方包。最流行的一種被簡單地稱為 toml 。 與 YAML 和 JSON 一樣,它返回基本的 Python 數據類型。

import toml
def configuration_from_toml(data):
    parsed = toml.loads(data)
    return configuration_from_dict(parsed)

總結

選擇配置格式是一種微妙的權衡。但是,一旦你做出決定,Python 就可以使用少量代碼來解析大多數流行的格式。

到此這篇關于使用 Python 解析配置文件格式的文章就介紹到這了,更多相關Python 解析配置文件內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python logging日志模塊 配置文件方式
  • Python讀取配置文件(config.ini)以及寫入配置文件
  • python操作cfg配置文件方式
  • 使用python腳本自動創建pip.ini配置文件代碼實例
  • python pip源配置,pip配置文件存放位置的方法

標簽:西寧 珠海 潮州 宜昌 盤錦 佳木斯 上饒 湖北

巨人網絡通訊聲明:本文標題《使用 Python 解析配置文件格式》,本文關鍵詞  使用,Python,解析,配置文件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用 Python 解析配置文件格式》相關的同類信息!
  • 本頁收集關于使用 Python 解析配置文件格式的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久综合一区二区| 高清视频一区二区| 亚洲私人影院在线观看| 国产日韩欧美一区二区三区乱码| 2023国产精品自拍| 久久久久高清精品| 国产精品青草久久| 亚洲伦理在线精品| 亚洲乱码国产乱码精品精的特点 | 欧美夫妻性生活| 欧美在线不卡视频| 欧美日韩高清影院| 欧美一卡二卡在线| 亚洲精品一区二区三区蜜桃下载| 日韩欧美中文字幕一区| 26uuu成人网一区二区三区| 久久精品在线免费观看| 中文字幕在线不卡一区 | 日本亚洲一区二区| 久久精品国产久精国产爱| 国产一区二区在线免费观看| 精品亚洲porn| 国产不卡在线播放| 在线视频你懂得一区二区三区| 欧美精品日日鲁夜夜添| 久久亚洲私人国产精品va媚药| 中文在线资源观看网站视频免费不卡| 亚洲摸摸操操av| 丝袜美腿成人在线| 国产成人av电影在线| 91麻豆福利精品推荐| 欧美精品在线视频| 欧美国产欧美综合| 婷婷六月综合亚洲| 不卡在线观看av| 51精品视频一区二区三区| 亚洲国产精品99久久久久久久久 | 日韩一级在线观看| 亚洲女同女同女同女同女同69| 肉色丝袜一区二区| www.成人在线| 26uuu亚洲| 亚洲综合激情网| 国产精品综合在线视频| 日本大香伊一区二区三区| 精品国产91洋老外米糕| 亚洲国产一二三| 国产精品99久久久| 91精品国产综合久久精品app| 国产精品日韩成人| 国产米奇在线777精品观看| 精品视频在线免费看| 国产精品狼人久久影院观看方式| 麻豆极品一区二区三区| 欧美无人高清视频在线观看| 欧美极品另类videosde| 国产资源在线一区| 日韩精品自拍偷拍| 丝袜脚交一区二区| 欧美日韩欧美一区二区| 亚洲欧美一区二区久久| 丁香啪啪综合成人亚洲小说 | 亚洲激情自拍视频| 99久久国产综合精品女不卡| 中文字幕精品在线不卡| 国产精品白丝jk黑袜喷水| 2020日本不卡一区二区视频| 久久精品国产第一区二区三区| 欧美男男青年gay1069videost| 亚洲品质自拍视频| 欧美伊人久久大香线蕉综合69| 亚洲色图欧美偷拍| 91香蕉视频污| 亚洲人成人一区二区在线观看| 91免费观看在线| 亚洲视频一区二区在线观看| 91在线视频播放地址| 亚洲人成7777| 欧美日韩日日骚| 毛片av一区二区| 久久久久9999亚洲精品| 成人黄色国产精品网站大全在线免费观看| 久久精品视频在线看| 国产成人午夜电影网| 国产精品高潮呻吟| 欧美主播一区二区三区| 婷婷综合久久一区二区三区| 日韩精品资源二区在线| 高清日韩电视剧大全免费| 国产精品久久久久久久第一福利| 一本大道久久a久久精品综合| 亚洲亚洲人成综合网络| 日韩亚洲国产中文字幕欧美| 国产福利一区二区三区在线视频| 国产精品久久久久久福利一牛影视| 色综合色综合色综合色综合色综合| 亚洲成人免费看| 久久女同精品一区二区| 色婷婷综合视频在线观看| 亚洲成人免费在线观看| 精品播放一区二区| 91麻豆精品在线观看| 丝瓜av网站精品一区二区 | 亚洲第一电影网| 精品对白一区国产伦| 高清不卡在线观看| 亚洲影视在线观看| 久久综合久久99| 91久久香蕉国产日韩欧美9色| 丝袜美腿亚洲色图| 中文成人av在线| 欧美一区二区三区啪啪| 99视频在线精品| 麻豆精品国产传媒mv男同| 亚洲欧美一区二区三区国产精品| 日韩精品在线一区| 色播五月激情综合网| 国产精品中文字幕日韩精品| 一区二区在线看| 亚洲国产成人午夜在线一区| 91精品在线麻豆| 色婷婷综合久久久久中文| 国产一区二区剧情av在线| 亚洲一区二区在线免费观看视频| 国产调教视频一区| 欧美成人猛片aaaaaaa| 在线精品国精品国产尤物884a| 国产精品亚洲一区二区三区妖精 | 亚洲综合激情另类小说区| 日本一区二区三区久久久久久久久不 | 亚洲美女在线国产| 国产精品久久久久久久久免费樱桃| 日韩欧美亚洲国产精品字幕久久久| 日本久久一区二区三区| www.欧美.com| 成人18视频在线播放| 国产剧情一区在线| 国产一区二区三区四区五区美女| 日一区二区三区| 亚洲成人综合视频| 亚洲一级在线观看| 亚洲欧洲制服丝袜| 国产精品久久久久久户外露出 | 国产中文一区二区三区| 青青青爽久久午夜综合久久午夜| 亚洲一区二区三区四区五区黄| 国产精品久久久久久久久免费相片| 国产亚洲欧美日韩俺去了| 日韩女优毛片在线| 亚洲精品一区二区三区四区高清| 欧美成人免费网站| 久久嫩草精品久久久精品| 久久久久久久久岛国免费| 国产欧美一区二区精品性色超碰 | 欧美一区日韩一区| 欧美一区二区三区日韩| 91精品国产一区二区三区蜜臀 | 免费在线观看一区| 蜜桃久久精品一区二区| 精品一区二区日韩| 成人午夜免费电影| 99久久99久久精品国产片果冻| 国产中文字幕一区| 处破女av一区二区| 色婷婷国产精品久久包臀| 欧美日韩亚洲不卡| 欧美zozozo| 中文字幕av在线一区二区三区| 亚洲日本va午夜在线影院| 亚洲制服丝袜av| 久久精品国产秦先生| 粉嫩高潮美女一区二区三区 | 狠狠久久亚洲欧美| 99久久精品国产精品久久| 欧美日韩成人综合| 欧美精品一区二区三区四区| 国产精品麻豆久久久| 亚洲在线视频免费观看| 蜜臀av亚洲一区中文字幕| 国产精品影视在线观看| 欧美亚州韩日在线看免费版国语版| 欧美日韩免费在线视频| 久久久国产精品午夜一区ai换脸| 国产精品国产a| 毛片av一区二区| 91美女蜜桃在线| www国产精品av| 香蕉久久夜色精品国产使用方法| 久久av中文字幕片| 在线视频中文字幕一区二区| 久久久久久久久久久久久夜| 亚洲国产综合视频在线观看| 国产成人在线视频免费播放| 欧美亚洲一区二区在线| 精品88久久久久88久久久| 午夜欧美2019年伦理| 成人av在线一区二区三区| 日韩精品一区二区三区老鸭窝| 一区二区三区自拍| 国产传媒久久文化传媒|