2015-07-10 08:44:47 +02:00

50 lines
1.4 KiB
Python
Executable File

#!/usr/bin/python2.7
import sys, csv, json, os, re
from optparse import OptionParser
def run(csv_file_path):
if not os.path.exists(csv_file_path):
sys.exit('Input file does not exists. Aborting.')
stats = {
'date' : None,
'time' : None,
'host' : None,
'items' : {'ad': 0.0, 'tracker': 0.0, 'analytics': 0.0, 'widget': 0.0, 'privacy': 0.0, '-': 0.0, 'total' : 0.0},
'sizes' : {'ad': 0.0, 'tracker': 0.0, 'analytics': 0.0, 'widget': 0.0, 'privacy': 0.0, '-': 0.0},
'times' : {'ad': 0.0, 'tracker': 0.0, 'analytics': 0.0, 'widget': 0.0, 'privacy': 0.0, '-': 0.0}
}
with open(csv_file_path) as csv_file:
wpt_data = csv.DictReader(csv_file)
items = stats['items']
sizes = stats['sizes']
times = stats['times']
for d in wpt_data:
if not stats['host']:
stats['host'] = d['Host'] # first line
stats['date'] = d['Date'] # first line
stats['time'] = d['Time'] # first line
items['total'] += 1
bug_type = d['bug_type']
items[bug_type] += 1
sizes[bug_type] += int(d['Object Size'])
times[bug_type] += int(d['Time to Load (ms)'])
return stats
if __name__ == '__main__':
p = OptionParser();
p.add_option('-f', '--file', action="store", help="wpt csv input file")
options, args = p.parse_args()
if not options.file:
sys.exit('No wpt csv input file specified. Aborting.')
stats = run(options.file)
print json.dumps(stats, indent=2, separators=(',',':'))