#!/usr/bin/env python3 import sys import yaml def inputs(args): if args: for filename in args: with open(filename) as f: yield filename, f else: yield '-', sys.stdin def string_representer(dumper, data): style = None if '\n' in data: style = '|' return dumper.represent_scalar('tag:yaml.org,2002:str', data, style=style) yaml.add_representer(str, string_representer, Dumper=yaml.SafeDumper) objs = [] for filename, f in inputs(sys.argv[1:]): objs.append(yaml.load(f, Loader=yaml.CSafeLoader)) yaml.safe_dump_all(objs, stream=sys.stdout, indent=4, default_flow_style=False)