我正在努力使用 ruamel 对 YAML 文件进行往返解析。 下面是一个示例 YAML 文件,
input.yaml
:
##### Header comment ####
key: #comment1
key2: val2
下面是python代码
from pathlib import Path
import ruamel.yaml
input = Path("input.yaml")
yaml = ruamel.yaml.YAML()
data = yaml.load(input)
yaml.dump(data,Path("someoutput.yaml"))
这会创建一个输出文件,每个评论后都会有空白换行符
##### Header comment ####
key: #comment1
key2: val2
我尝试递归地浏览每条评论(ca.comment)并将其剥离,但没有成功
我已经解决了多个问题,但我能找到的最接近的是 使用 ruamel.yaml 修改 YAML 会添加额外的新行。然而,在这个问题中,评论本身有一个换行符,所以与我的问题无关
我正在使用:
ruamel.yaml==0.17.32
python 3.9
当将
pathlib.Path
实例作为参数传递给 YAML().load()
时,此文件将被打开 rb
,并且 \r\n
结尾的处理应由扫描仪完成。
看起来这不能正常工作,所以我建议尝试:
data = yaml.load(input.open())
和/或:
yaml.dump(data,Path("someoutput.yaml").open('w'))