2017-02-11 63 views
1

我用load_yaml_guess_indent(f, preserve_quotes=True)读取YAML文件,然后修改它,并把它写回。我注意到,当他们写回来时,长长的线条被包裹起来。 (在80-85个字符后插入换行符。)是否有可以传递的参数来阻止这种情况发生?防止长线路越来越裹在ruamel.yaml

回答

1

这些参数你可以用手去round_trip_dump()

def round_trip_dump(data, stream=None, Dumper=RoundTripDumper, 
       default_style=None, default_flow_style=None, 
       canonical=None, indent=None, width=None, 
       allow_unicode=None, line_break=None, 
       encoding=enc, explicit_start=None, explicit_end=None, 
       version=None, tags=None, block_seq_indent=None, 
       top_level_colon_align=None, prefix_colon=None): 

你正在寻找的一个是width

如果您使用的是新的(ruamel.yaml >= 0.15)API,大多数参数的直接翻译为您创建的YAML实例属性,所以在这种情况下,你会怎么做:

yaml = ruamel.yaml.YAML() 
yaml.width = 4096 # or some other big enough value to prevent line-wrap 
yaml.dump(data, stream=your_stream) 
+0

可以更新这个答案的新的API? –

+0

@KatrinaBrock完成 – Anthon