from __future__ import print_function import sys def stop_err(msg): sys.stderr.write(msg) sys.exit() def __main__(): try: infile = open(sys.argv[1]) outfile = open(sys.argv[2], "w") except Exception: stop_err("Cannot open or create a file\n") if len(sys.argv) < 4: stop_err("No columns to merge") else: cols = sys.argv[3:] skipped_lines = 0 for line in infile: line = line.rstrip("\r\n") if line and not line.startswith("#"): fields = line.split("\t") line += "\t" for col in cols: try: line += fields[int(col) - 1] except Exception: skipped_lines += 1 print(line, file=outfile) if skipped_lines > 0: print("Skipped %d invalid lines" % skipped_lines) if __name__ == "__main__": __main__()