#!/usr/bin/env python
# Need to have argparse installed:
# $ pip install argparse

import sys
import os.path
import argparse
from pandas import DataFrame


def read_data(data):
    lines = data.readlines()

    feature, precision, recall, f1 = [], [], [], []
    for line in lines:
        line_clean = line.strip().split(",")
        feature.append(line_clean[0])
        precision.append(line_clean[1])
        recall.append(line_clean[4])
        f1.append(line_clean[6])
    return feature, precision, recall, f1


def save_to_spreadsheet(resultfile, data):
    try:
        df = DataFrame({'Feature': data[0], 'Precision': data[1], 'Recall': data[2], 'f1-score': data[3]})
        df.to_csv(resultfile, index=False)
        print("Spreadsheet saved at {0}".format(resultfile))
    except:
        print("Error: {0}".format(sys.exc_info()[0]))


def menu():
    parser = argparse.ArgumentParser(description='Copy data results into a spreadsheet.')
    parser.add_argument('-s', dest='input', type=argparse.FileType('r'), required=True, help="File with the results.")
    parser.add_argument('-d', dest='output', required=True, help="The name of the file to save the spreadsheet.")
    args = parser.parse_args()
    args.input, args.output
    return args.input, args.output


if __name__ == "__main__":
    datafile, resultfile = menu()
    data = read_data(datafile)
    save_to_spreadsheet(resultfile, data)