#!/usr/bin/env python3 import csv import os from pprint import pprint # Returns array of csv files in current directory def getFiles(): files = [f for f in os.listdir('.') if os.path.isfile(f)] return[f for f in files if f.endswith('.csv')] def processFile(fname): with open(fname, 'r') as f: lines = [] data = csv.reader(f) fields = next(data) responseCodes = {} responsePerSec = {} responseTimes = [] for row in data: items = zip(fields, row) item = {} for(name, value) in items: item[name] = value.strip() sec = int(item['offset'].split('.')[0]) if sec not in responsePerSec: responsePerSec[sec] = [] else: responsePerSec[sec].append(item['response-time']) code = item['status-code'] if code not in responseCodes: responseCodes[code] = 1 else: responseCodes[code] = responseCodes[code] + 1 responseTimes.append(item['response-time']) if len(responseTimes) != 0: maxResponse = max(responseTimes) minResponse = min(responseTimes) #print("Maximum response time was ", maxResponse) #print("Minimum response time was ", minResponse) else: print("csv is empty") #pprint(responseCodes) for sec in responsePerSec: if len(responsePerSec[sec]) != 0: #print(sec, ":") #print(" Maximum:", max(responsePerSec[sec])) #print(" Minimum:", min(responsePerSec[sec])) #print(" Num of responses:", len(responsePerSec[sec])) print(len(responsePerSec[sec])) #else: #print(" empty") def keychars(x): return int(x.split('.')[1]) def processAllFiles(): files = sorted(getFiles(), key=keychars) for f in files: #print("Processing ", f) processFile(f) if __name__ == "__main__": processAllFiles()