二进制文件比较工具python
# -*- coding: utf-8 -*-
import sys
import time
import binascii
import serial
import serial.tools.list_ports
import logging
import os
import struct
import datetime
logging.basicConfig(format=%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s,
datefmt=%d-%m-%Y:%H:%M:%S)
logging.getLogger().setLevel(logging.ERROR)
logger = logging.getLogger()
u8_lit = struct.Struct(B)
s8_lit = struct.Struct(b)
u16_lit = struct.Struct(<H)
s16_lit = struct.Struct(<h)
u32_lit = struct.Struct(<I)
s32_lit = struct.Struct(<i)
double_lit = struct.Struct(<d)
float_lit = struct.Struct(<f)
u16_big = struct.Struct(>H)
s16_big = struct.Struct(>h)
u32_big = struct.Struct(>I)
s32_big = struct.Struct(>i)
double_big = struct.Struct(>d)
float_big = struct.Struct(>f)
support_dbg_out = 0
support_dbg_send_frame = 1
if __name__ == __main__:
while True:
print(---------------------------------)
print(bin比较工具)
print(---------------------------------)
src1 = input(源文件1:)
src2 = input(源文件2:)
try:
temp1 = open(src1,rb)
temp2 = open(src2, rb)
out1 = temp1.read(1024*1024*10)
out2 = temp2.read(1024 * 1024*10)
temp1.close()
temp2.close()
print(len(out1), len(out2))
if len(out1) != len(out2):
print(size err.)
mark = 0
for i in range(0, len(out1)):
if out1[i] != out2[i]:
print(err:%d %x %x%(i,out1[i], out2[i]))
mark = 1
if mark == 0:
print(无异常)
except Exception as e:
print(e)