YAML 是用于 Python 处理 yml 文件的 loader/dumper 程序包
version: | 0.17.21 |
---|---|
更新日期 | 2022-02-12 |
文档说明 | http://yaml.readthedocs.io |
repository | https://sourceforge.net/projects/ruamel-yaml/ |
pypi | https://pypi.org/project/ruamel.yaml/ |
0.16.13版本是最后一个在 Python 2.7上测试的版本。0.17.21是最后一个在 Python 3.5上测试的版本,也是最后一个支持旧的 PyYAML 函数的版本,你必须创建一个YAML ()
实例并使用它的.load()
和.dump()
方法。
Examples
from ruamel.yaml import YAML
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
yaml = YAML()
code = yaml.load(inp)
code['name']['given'] = 'Bob'
yaml.dump(code, sys.stdout)
# 输出结果
# example
name:
# details
family: Smith # very common
given: Bob # one of the sibling
注意
老版本的使用方式
from __future__ import print_function
import sys
import ruamel.yaml
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
code = ruamel.yaml.load(inp, ruamel.yaml.RoundTripLoader)
code['name']['given'] = 'Bob'
ruamel.yaml.dump(code, sys.stdout, Dumper=ruamel.yaml.RoundTripDumper)
# the last statement can be done less efficient in time and memory with
# leaving out the end='' would cause a double newline at the end
# print(ruamel.yaml.dump(code, Dumper=ruamel.yaml.RoundTripDumper), end='')
# 输入结果
name:
# details
family: Smith # very common
given: Bob # one of the siblings
访问方式
可以通过[]
和get
,访问ruamel.yaml.dump()
返回的数据格式。
修改方式
通过构造dict
,将值添加到指定的位置,并且可以添加注释
import sys
from ruamel.yaml import YAML
yaml_str = """\
first_name: Art
occupation: Architect # This is an occupation comment
about: Art Vandelay is a fictional character that George invents...
"""
yaml = YAML()
data = yaml.load(yaml_str)
data.insert(1, 'last name', 'Vandelay', comment="new key")
yaml.dump(data, sys.stdout)
# 返回结果----------------------
irst_name: Art
last name: Vandelay # new key
occupation: Architect # This is an occupation comment
about: Art Vandelay is a fictional character that George invents...
默认情况下ruamel.yaml
缩进俩个空格,用于表示键值对和列表,可以通过例如使用 yaml.indent()
来更改此默认缩进。
YML
YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写,以yml和yaml为后缀,可与C,python,java多种语言交互,是一种专门用来配置文件的语言。YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。
YAML 基本语法
(1)分层:使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)
(2)注释:‘#’表示注释,只能单行注释,从#开始处到行尾
(3)列表: 破折号后面跟一个空格(a dash and space)表示列表
(4)键值对:用冒号和空格表示键值对 key: value
本文作者:Fly
本文链接:https://www.xuehuafei.cn/archives/python-handles-yml-files.html
版权声明:白嫖注明出处