python判断两个文件是否相同

import hashlib
def getHash(f):
    line=f.readline()
    hash=hashlib.md5()
    while(line):
        hash.update(line)
        line=f.readline()
    return hash.hexdigest()
def IsHashEqual(f1,f2):
    str1=getHash(f1)
    str2=getHash(f2)
    return str1==str2

if __name__ == '__main__':
    f1=open("D:/2.iso","rb")
    f2=open("E:/wenjian/1.iso","rb")
    print  IsHashEqual(f1,f2)
计算2个文件的MD5值,大文件计算较慢
判断两个JSON文件的节点是否相等,可以使用以下步骤: 1. 将两个JSON文件加载为Python对象,可以使用json模块的load方法将JSON文件转换为Python字典或列表。 2. 逐个比较两个对象的每个键值对,判断它们是否相等。如果值是嵌套的字典或列表,则递归进行比较。 3. 如果两个对象完全相等,则它们的JSON表示应该相同。可以使用dumps方法将Python对象转换为JSON字符串,然后比较这两个字符串是否相等。 示例代码: ```python import json def compare_json_files(file1, file2): with open(file1) as f: data1 = json.load(f) with open(file2) as f: data2 = json.load(f) if type(data1) != type(data2): return False if isinstance(data1, list): if len(data1) != len(data2): return False for i in range(len(data1)): if not compare_json_files(data1[i], data2[i]): return False return True if isinstance(data1, dict): if set(data1.keys()) != set(data2.keys()): return False for key in data1.keys(): if not compare_json_files(data1[key], data2[key]): return False return True return data1 == data2 def is_json_equal(file1, file2): with open(file1) as f1, open(file2) as f2: return json.dumps(json.load(f1)) == json.dumps(json.load(f2)) file1 = "file1.json" file2 = "file2.json" if compare_json_files(file1, file2): print("JSON files are equal") else: print("JSON files are not equal") if is_json_equal(file1, file2): print("JSON files are equal") else: print("JSON files are not equal") ``` 这个函数将比较两个JSON文件并返回一个布尔值,表示它们是否相等。第一个函数使用递归比较两个Python对象的键值对,第二个函数使用dumps方法比较它们的JSON表示。如果两个函数都返回True,则这两个JSON文件是相等的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值