Я использую 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», не применяя этот стиль цитирования во всей остальной части файла?
(Кроме того, могу ли я остановить удаление трех дефисов ---
?)