in fiosynth_lib/fio_json_parser.py [0:0]
def combineCsv(csvFolder, fname, dut_list):
csvName = "Combined_Results-%s.csv" % fname
csvPath = os.path.join(csvFolder, csvName)
stats = OrderedDict() # Using OrderedDict to preserve job and stat ordering
try:
os.remove(csvPath) # Remove it if it already exists
except OSError:
pass
csvList = glob.glob(os.path.join(csvFolder, "*.csv"))
reader = csv.reader(open(csvList[0]))
col_names = next(reader)
for row in reader:
stats[row[0]] = OrderedDict()
for c in col_names[1:]: # remove "jobname" column
stats[row[0]][c] = []
for c in csvList:
with open(c) as fd:
creader = csv.reader(fd)
next(creader)
for row in creader:
for i in range(1, len(row)):
stats[row[0]][col_names[i]].append(row[i])
combined_stats = get_combined_stats(stats)
with open(csvPath, "a") as csv_out:
writer = csv.writer(csv_out)
server_list = ";".join([dut.serverName for dut in dut_list])
writer.writerow([fname] + [server_list])
stats_headers = combined_stats[list(combined_stats.keys())[0]].keys()
writer.writerow(["Jobname"] + list(stats_headers))
for job in combined_stats.keys():
row = [job]
for stat in combined_stats[job].keys():
row.append(combined_stats[job][stat])
writer.writerow(row)