我正在使用 Ruamel 在人工编辑的 YAML 文件中保留引用样式。
我有示例输入数据:
---
a: '1'
b: "2"
c: 3
我使用以下方法读取数据:
def read_file(f):
with open(f, 'r') as _f:
return ruamel.yaml.round_trip_load(_f.read(), preserve_quotes=True)
然后我编辑该数据:
data = read_file('in.yaml')
data['foo'] = 'bar'
我使用以下方法写回磁盘:
def write_file(f, data):
with open(f, 'w') as _f:
_f.write(ruamel.yaml.dump(data, Dumper=ruamel.yaml.RoundTripDumper, width=1024))
write_file('out.yaml', data)
输出文件是:
a: '1'
b: "2"
c: 3
foo: bar
有没有一种方法可以强制对字符串 'bar' 进行硬引用,而无需在文件的其余部分强制使用这种引用样式?
(另外,我可以阻止它删除三个破折号---
吗?)