日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 读取yml文件_Python 读取 yaml 配置文件 | 文艺数学君

發布時間:2024/10/8 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 读取yml文件_Python 读取 yaml 配置文件 | 文艺数学君 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要這一篇介紹 Python 中使用 yaml 的方式加載配置文件,包含關于 pyyaml 的簡單使用,讀入和寫入配置文件。

簡介

之前我們介紹過使用 configparser 來讀取配置文件(Python讀入配置文件-configparser介紹),這里我們介紹另外一種 Python 寫配置文件的方式,使用 yaml 來寫配置文件。我們會使用 pyyaml 庫來完成。

Yaml 配置文件介紹

為了可以讀取 yaml 文件,我們需要安裝 pyyaml 并導入 yaml 模塊。使用 pip install pyyaml 來進行安裝即可。

yaml 文件規則

首先來說明一下 yaml 配置文件書寫的時候的規則:

配置文件區分大小寫;

使用縮進表示層級關系;

使用空格鍵縮進,縮進的空格數目不固定,只需要相同層級的元素左側對齊;

文件中的字符串不需要使用引號標注,但若字符串包含有特殊字符則需用引號標注;

注釋標識為 #

鍵值對用冒號 ':' 結構表示,冒號與值之間需用空格分隔

可以在配置前加有 "-" 符號,符號與值之間需用空格分隔,來表示數組。(也可以直接寫成 list 的形式即可)

yaml 配置文件支持的數據類型如下所示:

#?純量

s_val:?name??????????????#?字符串:{'s_val':?'name'}

spec_s_val:?"name\n"????#?特殊字符串:{'spec_s_val':?'name\n'

num_val:?31.14??????????#?數字:{'num_val':?31.14}

bol_val:?true???????????#?布爾值:{'bol_val':?True}

nul_val:?null???????????#?null值:{'nul_val':?None}

nul_val1:?~?????????????#?null值:{'nul_val1':?None}

time_val:?2018-03-01t11:33:22.55-06:00?????#?時間值(iso8601格式):{'time_val':?datetime.datetime(2018,?3,?1,?17,?33,?22,?550000)}

date_val:?2019-01-10????#?日期值:{'date_val':?datetime.date(2019,?1,?10)}

下面是一個基本的 yaml 配置文件的示例,包含了一些基本的元素:

train:

batch_size:?25

lr:?0.001

train_index:?[1,2,3]

test:

batch_size:?'100'

test_index:

-?1

-?2

-?3

讀取 yaml 配置文件

我們使用 yaml.safe_load 來讀取上面的配置文件。讀取的結果會保存為 python 中的 dict 類型。

import?os

import?yaml

with?open(os.path.join('test.yaml'))?as?f:

cfg?=?yaml.safe_load(f)?#?讀取配置文件

print(cfg)

最終輸出的值如下所示:

這一部分可以和 easydict 配合使用,關于 easydict 的內容可以查看鏈接,Python 中 EasyDict 的使用。

import?os

import?yaml

from?easydict?import?EasyDict

def?setup_config():

with?open(os.path.join('test_config.yaml'))?as?f:

cfg?=?yaml.safe_load(f)?#?讀取配置文件

cfg?=?EasyDict(cfg)?#?存成?Easydict?的格式

return?cfg

生成 yaml 配置文件的格式

我們可以使用 yaml.dump 來將字典或是列表轉換為 yaml 的標準格式。還是上面的例子,這里我們使用 yaml.dump 來看一下最終生成的結果。

import?os

import?yaml

with?open(os.path.join('test.yaml'))?as?f:

cfg?=?yaml.safe_load(f)?#?讀取配置文件

print(cfg)

print('='*10)

print(yaml.dump(cfg))

可以看到使用 yaml.dump 可以生成 yaml 所需要的格式。

我們也可以將輸出的內容直接保存到文件中。(yaml.dump?accepts the second optional argument, which must be an open text or binary file. In this case,?yaml.dump?will write the produced YAML document into the file. Otherwise,?yaml.dump?returns the produced document.)

import?os

import?yaml

with?open(os.path.join('test.yaml'))?as?f:

cfg?=?yaml.safe_load(f)?#?讀取配置文件

stream?=?open('document.yaml',?'w',?encoding='utf8')

yaml.dump(cfg,?stream)

這樣可以直接將 yaml 保存到文件 document.yaml 中去。

總結

以上是生活随笔為你收集整理的python 读取yml文件_Python 读取 yaml 配置文件 | 文艺数学君的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产日韩激情 | 999热视频| 中文字幕一区二区人妻电影 | 毛片一级视频 | 淫欲av| 国产精品视频大全 | 亚洲图片在线 | 在线成人欧美 | 免费毛片一区二区三区久久久 | 超能一家人电影免费喜剧在线观看 | 国产视频一区二区三区在线 | 在线观看国产一级片 | 长河落日电视连续剧免费观看 | 美女黄视频大全 | 国产精彩视频一区二区 | 打开免费观看视频在线 | 天天拍夜夜拍 | 精品一区二区三区入口 | 久久国产欧美日韩精品 | a视频免费在线观看 | 青青青网| 久久99精品久久久久婷婷 | 欧美成人精品一区二区 | 日韩免费观看av | 成av在线| 中文字幕av在线播放 | 黄色片亚洲 | 国产精品乱码久久久久久久久 | 九色视频91 | 欧洲自拍一区 | 欧美成人亚洲 | 牛牛av在线 | 亚洲国产成人精品91久久久 | 亚洲欧洲久久 | 香蕉av一区 | 99精品国产成人一区二区 | 波多野结衣在线网址 | 在线看成人片 | 免费成年人视频在线观看 | 欧美日韩国内 | 亚洲国产成人精品女人久久 | 人人妻人人爽一区二区三区 | 欧美人妻日韩精品 | 鸭子av | 美女国产在线 | 一区二区三区高清在线 | 欧美黄色短视频 | 香蕉视频911 | 久久黄网 | 精品国产一级 | 中文字幕无码毛片免费看 | 欧美精品一线 | 综合久久五月天 | 黄色片免费的 | 色婷婷av久久久久久久 | 人妻天天爽夜夜爽一区二区三区 | 在线久| 国产69精品久久久久999小说 | 中文字幕国产日韩 | 国产乱仑视频 | 日本视频在线 | 国产原创91 | 韩国一级淫片 | 377人体粉嫩噜噜噜 www.av黄色 | 伊人999| 蛇女欲潮性三级 | 成av人在线观看 | 免费午夜人成电影 | 黑白配av | 韩国三级久久 | 精品人妻天天爽夜夜爽视频 | 欧美你懂得 | 亚洲欧洲日本精品 | 亚洲av综合色区 | 大肉大捧一进一出好爽mba | mm131美女视频 | 国产不卡av在线播放 | 黄色九九| 国产精品无码人妻一区二区在线 | 91精品国产色综合久久不卡98口 | 日韩欧美亚洲成人 | 国产欧美一区二 | 91射射| 天堂国产 | 久久香蕉精品视频 | 国产精品高潮呻吟久久av野狼 | 午夜99 | 国产一区不卡 | 三年大片在线观看 | 红桃视频成人 | 男人午夜影院 | 亚洲第一中文字幕 | 国产1区在线观看 | 亚洲色综合 | 国产精品亚洲专区无码牛牛 | 91搞搞| 国产精品色婷婷99久久精品 | 日本天天色| 国产乱码精品一区二区三区中文 |