decisionai_plugin/sample/util/csvdiff.py (24 lines of code) (raw):

import sys import argparse import csv def get_dataset(f): return set(map(tuple, csv.reader(f))) def main(f1, f2, outfile, sorting_column): set1 = get_dataset(f1) set2 = get_dataset(f2) #different = set1 ^ set2 output = csv.writer(outfile) # for row in sorted(different, key=lambda x: x[sorting_column], reverse=True): # output.writerow(row) output.writerow('**********************file1********************') for line in set1: if line not in set2: output.writerow(line) output.writerow('**********************file2********************') for line in set2: if line not in set1: output.writerow(line) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('infile', nargs=2, type=argparse.FileType('r')) parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout) parser.add_argument('-sc', '--sorting-column', nargs='?', type=int, default=0) args = parser.parse_args() main(*args.infile, args.outfile, args.sorting_column)