view add_input_name_as_column.py @ 3:c9459a7e08ff draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/add_input_name_as_column commit 1775d01920f27931a1935e233766f615d753502b
author iuc
date Tue, 14 Oct 2025 17:12:53 +0000
parents ea4ad41e01fc
children
line wrap: on
line source

import argparse
import io


def Parser():
    the_parser = argparse.ArgumentParser(description="add label to last column of file")
    the_parser.add_argument(
        "--input", required=True, action="store", type=str, help="input tabular file"
    )
    the_parser.add_argument(
        "--output", required=True, action="store", type=str, help="output file path"
    )
    the_parser.add_argument(
        "--label",
        required=True,
        action="store",
        type=str,
        help="label to add in last column",
    )
    the_parser.add_argument(
        "--header", action="store", type=str, help="column label for last column"
    )
    the_parser.add_argument(
        "--prepend",
        action="store_true",
        default=False,
        help="Prepend column instead of appending",
    )

    args = the_parser.parse_args()
    return args


args = Parser()


with io.open(args.input, encoding="utf-8") as input, io.open(
    args.output, "w", encoding="utf-8"
) as output:
    for i, line in enumerate(input):
        line = line.strip("\n")
        if (i == 0) and args.header:
            new_entry = args.header
        else:
            new_entry = args.label
        if args.prepend:
            line = "%s\t%s\n" % (new_entry, line)
        else:
            line = "%s\t%s\n" % (line, new_entry)
        output.write(line)