#!/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)