#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件        :compare.py
@说明        :
@时间        :2021/07/09 17:56:20
@作者        :shitao.li
@版本        :1.0
'''

import os
import array
import sys

file1 = sys.argv[1]
file2 = sys.argv[2]


shortArray = array.array('h')
count = 0
count_diff = 0

def cmp_file(f1, f2):

    st1 = os.stat(f1)
    st2 = os.stat(f2)
    global count
    global count_diff

    # 比较文件大小
    if st1.st_size != st2.st_size:
        print('size is no same')
        # return False

    bufsize = shortArray.itemsize

    with open(f1, 'rb') as fp1, open(f2, 'rb') as fp2:
        while True:
            b1 = fp1.read(bufsize)  # 读取指定大小的数据进行比较
            b2 = fp2.read(bufsize)

            if not b1:
                print(file1,"file end, compare end.")
                print('\n') 
                return False
            elif not b2:
                print(file2, "file end, compare end")
                print('\n') 
                return False
            elif b1 != b2:
                count_diff = count_diff + 1
            elif b1 == b2:
                count = count + 1



cmp_file(file1, file2)
print("same count is: ", count, "diff count is: ", count_diff)
print("compare file is:", file1, "<-->", file2)
print('\n') 
# print("int arg is:", sys.argv[0], sys.argv[1], sys.argv[2])

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐