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' のハード クォートを強制する方法はありますか?
(また、3 つのダッシュを削除しないようにすることはでき---
ますか?)