日韩性视频-久久久蜜桃-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 配置文件 | 文艺数学君的全部內容,希望文章能夠幫你解決所遇到的問題。

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