| #!/usr/bin/python3 |
| from __future__ import absolute_import |
| from __future__ import division |
| from __future__ import print_function |
| |
| import re |
| import sys |
| |
| def parse_file(filename): |
| data = {} |
| for line in open(filename): |
| if re.match('\d', line): |
| (samples, percent, symbol) = line.split() |
| data[symbol] = float(percent) |
| return data |
| |
| |
| data1 = parse_file(sys.argv[1]) |
| data2 = parse_file(sys.argv[2]) |
| |
| delta = {} |
| for symbol in list(data1.keys()) + list(data2.keys()): |
| delta[symbol] = data1.get(symbol, 0) - data2.get(symbol, 0) |
| |
| def lookup_delta(symbol): |
| return delta[symbol] |
| |
| sorted_deltas = sorted(list(delta.keys()), key=lookup_delta, reverse=True) |
| |
| if len(sorted_deltas) > 40: |
| sorted_deltas = sorted_deltas[0:20] + sorted_deltas[-20:] |
| |
| for symbol in sorted_deltas: |
| print('%2.3f %s' % (delta[symbol], symbol)) |