filter_ids.py 774 Bytes
import argparse
from os.path import isfile
from volia.data_io import read_lst

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Filter ids of the given file to only keep a subset")
    parser.add_argument("file", type=str, help="")
    parser.add_argument("--filter", default=None, type=str, help="")
    parser.add_argument("--outfile", default="out.txt", type=str, help="")

    args = parser.parse_args()

    assert args.filter is not None
    assert isfile(args.file)

    list_ = read_lst(args.file)
    filter_ = read_lst(args.filter)
    
    with open(args.outfile, "w") as of:
        for key in filter_.keys():
            of.write(key + " " + " ".join(list_[key]) + "\n")
    
    print("File filtered and written in: ", args.outfile)