| |
| |
| |
| |
| |
| |
| |
| |
|
|
| from argparse import ArgumentParser |
| import sys |
|
|
| def print_and_exit(msg): |
| sys.stderr.write(msg + '\n') |
| sys.exit(1) |
|
|
| def main(): |
| parser = ArgumentParser( |
| description="Concatenate two files into a single file") |
| parser.add_argument( |
| '-o', '--output', dest='output', required=True, |
| help='The output file. stdout is used if not given', |
| type=str, action='store') |
| parser.add_argument( |
| 'files', metavar='files', nargs='+', |
| help='The files to concatenate') |
|
|
| args = parser.parse_args() |
|
|
| if len(args.files) < 2: |
| print_and_exit('fewer than 2 inputs provided') |
| data = '' |
| for filename in args.files: |
| with open(filename, 'r') as f: |
| data += f.read() |
| if len(data) != 0 and data[-1] != '\n': |
| data += '\n' |
| assert len(data) > 0 and "cannot cat empty files" |
| with open(args.output, 'w') as f: |
| f.write(data) |
|
|
|
|
| if __name__ == '__main__': |
| main() |
| sys.exit(0) |
|
|