首页 > 编程 > Python > 正文

Python判断两个文件是否相同与两个文本进行相同项筛选的方法

2020-01-04 13:33:42
字体:
来源:转载
供稿:网友

python判断两个文件是否相同

import hashlibdef 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==str2if __name__ == '__main__':  f1=open("D:/2.iso","rb")  f2=open("E:/wenjian/1.iso","rb")  print IsHashEqual(f1,f2)

计算2个文件的MD5值,大文件计算较慢

python对两个文本进行相同项筛选

import osimport os.path as ospdef filter(path):  file_path = osp.join(path, 'index.txt')  if osp.exists(file_path):    return file_path  index_file = open(file_path, 'a+')  if not os.path.isdir(path):  #判断path是否为路径     return    for root, dirs, list in os.walk(path):    for i in list:       dir = os.path.join(root, i)  #将分离的部分组成一个路径名       #if os.path.getsize(dir) < 60000:  #获取文件大小         #os.remove(dir)       #删除文件       print (i)      index_file.write(i+'/n')  index_file.close()    def compare(path):  file=osp.join(path, 'label.txt')  file_path = osp.join(path, 'index.txt')  with open(file_path, 'r') as file1:     with open(file, 'r') as file2:       same = set(file1).intersection(file2)  same.discard('/n')  with open('some_output_file.txt', 'w') as file_out:     for line in same:       file_out.write(line)  file_out.close()filter(r'D:/Desktop/jiaoben/ci')compare(r'D:/Desktop/jiaoben/ci')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VEVB武林网的支持。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表