import sys def fdiff(s1, s2): if s1 == '-' or s2 == '-': return ' -' if s1 == 'N/A' or s2 == 'N/A': return ' N/A' t1 = float(s1) t2 = float(s2) return '%+6.1f' % (100. * (t1 - t2) / t2) def pdiff(line1, line2): data1 = line1.split('\t', 3) if len(data1) <= 3: return False data2 = line2.split('\t', 3) if len(data2) <= 3: return False if data1[3] != data2[3]: return False print('%s\t%s\t%s' % (fdiff(data1[0], data2[0]), fdiff(data1[1], data2[1]), data1[3])) return True fn1 = sys.argv[1] fn2 = sys.argv[2] f1 = open(fn1) f2 = open(fn2) test = None for line1, line2 in zip(f1, f2): line1 = line1.rstrip() line2 = line2.rstrip() if test and '\t' in line1: if pdiff(line1, line2): continue if line1 == line2: print(line1) if line1.startswith('========'): test = True else: print('<<< ' + line1) print('>>> ' + line2) f1.close() f2.close()