#!/usr/bin/env python
"""
Uses the python csv library to convert to and from tabular
usage: %prog [--from-tabular] -i in_file -o out_file
"""
import argparse
import csv
[docs]def main():
usage = "Usage: %prog [options]"
parser = argparse.ArgumentParser(usage=usage)
parser.add_argument("-f", "--from-tabular", action="store_true", default=False, dest="fromtabular")
parser.add_argument("-i", "--input", type=str, dest="input")
parser.add_argument("-o", "--output", type=str, dest="output")
args = parser.parse_args()
input_fname = args.input
output_fname = args.output
if args.fromtabular:
convert_to_csv(input_fname, output_fname)
else:
convert_to_tsv(input_fname, output_fname)
[docs]def convert_to_tsv(input_fname, output_fname):
with open(input_fname, newline="") as csvfile, open(output_fname, "w") as ofh:
reader = csv.reader(csvfile)
for line in reader:
ofh.write("\t".join(line) + "\n")
[docs]def convert_to_csv(input_fname, output_fname):
with open(input_fname) as tabfile, open(output_fname, "w", newline="") as ofh:
writer = csv.writer(ofh, delimiter=",")
for line in tabfile.readlines():
writer.writerow(line.strip().split("\t"))
if __name__ == "__main__":
main()