YAML 是用于 Python 处理 yml 文件的 loader/dumper 程序包version:0.17.21更新日期2022-02-12文档说明http://yaml.readthedocs.iorepositoryhttps://sourceforge.net/projects/ruamel-yaml/pypihttps://pypi.org/project/ruamel.yaml/0.16.13版本是最后一个在 Python 2.7上测试的版本。0.17.21是最后一个在 Python 3.5上测试的版本，也是最后一个支持旧的 PyYAML 函数的版本，你必须创建一个YAML ()实例并使用它的.load()和.dump()方法。Examplesfrom 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() 来更改此默认缩进。YMLYAML 是 "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