Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
1.3 kB · 45 lines
Python
at develop
12345678910111213141516171819202122232425262728293031323334353637383940414243444546#!/usr/bin/env python3import sysimport csv
if len(sys.argv) < 4: print( "Usage: compare_statistics.py <stats_old.csv> <stats_new.csv> <statistic_name>..." ) exit(1)
# Read result filesold = {}with open(sys.argv[1], newline="") as csvfile: reader = csv.DictReader(csvfile) for row in reader: columns = [] for stat in sys.argv[3:]: columns.append(row[stat]) old[(row["problem"], row["data_file"])] = columnsnew = {}with open(sys.argv[2], newline="") as csvfile: reader = csv.DictReader(csvfile) for row in reader: columns = [] for stat in sys.argv[3:]: columns.append(row[stat]) new[(row["problem"], row["data_file"])] = columns
# Select Matching rowskeys = ["problem", "data_file"]for stat in sys.argv[3:]: keys.extend([f"old_{stat}", f"new_{stat}"])
writer = csv.DictWriter(sys.stdout, keys, dialect="unix", extrasaction="ignore")writer.writeheader()for key, val in old.items(): if key in new: row = { "problem": key[0], "data_file": key[1], } for i in range(len(val)): row[f"old_{sys.argv[3+i]}"] = val[i] row[f"new_{sys.argv[3+i]}"] = new[key][i] writer.writerow(row)