#!/usr/bin/env python3 import sys import yaml import socket import threading def func(port, f_out): ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ss.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) ss.bind(('', port)) ss.listen(5) (fd, adr) = ss.accept() s = fd.recv(1024) f_out.write(s) f_out.close() fd.close() ss.close() if __name__ == "__main__": if len(sys.argv) < 3: sys.stderr.write('Usage: {} input.yaml output.yaml\n'.format(sys.argv[0])) sys.exit(1) f = open(sys.argv[1], 'r') d = yaml.load(f) f.close() foo = d.get('foo') bar = d.get('bar') d['hoge'] = foo + ' ' + bar d['fuga'] = 'foo={} bar={}'.format(foo, bar) d['guha'] = '(^_^)'.join( d.values() ) s = yaml.dump(d, default_flow_style=False, allow_unicode=True) port = 11233 f_out = open(sys.argv[2], 'w') th = threading.Thread( target=func, args=(port, f_out) ) th.daemon = True th.start() fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) fd.connect(('localhost', port)) s = s.encode('utf-8') fd.sendall(s) th.join() # EOF