mbligh | 0f91199 | 2009-02-12 21:51:27 +0000 | [diff] [blame^] | 1 | #!/usr/bin/python |
| 2 | import re, sys |
| 3 | |
| 4 | def parse_file(filename): |
| 5 | data = {} |
| 6 | for line in open(filename): |
| 7 | if re.match('\d', line): |
| 8 | (samples, percent, symbol) = line.split() |
| 9 | data[symbol] = float(percent) |
| 10 | return data |
| 11 | |
| 12 | |
| 13 | data1 = parse_file(sys.argv[1]) |
| 14 | data2 = parse_file(sys.argv[2]) |
| 15 | |
| 16 | delta = {} |
| 17 | for symbol in data1.keys() + data2.keys(): |
| 18 | delta[symbol] = data1.get(symbol, 0) - data2.get(symbol, 0) |
| 19 | |
| 20 | def lookup_delta(symbol): |
| 21 | return delta[symbol] |
| 22 | |
| 23 | sorted_deltas = sorted(delta.keys(), key=lookup_delta, reverse=True) |
| 24 | |
| 25 | if len(sorted_deltas) > 40: |
| 26 | sorted_deltas = sorted_deltas[0:20] + sorted_deltas[-20:] |
| 27 | |
| 28 | for symbol in sorted_deltas: |
| 29 | print '%2.3f %s' % (delta[symbol], symbol) |