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

yipeiwu_com5年前Python基础

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值,大文件计算较慢

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

import os
import os.path as osp
def 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')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

基于Python新建用户并产生随机密码过程解析

说明:本次代码是在Linux下执行的,windows也可以用,把添加用户密码的命令改成windows的就ok了 用Python新建用户并产生随机密码 import passwd_na...

python递归法解决棋盘分割问题

python递归法解决棋盘分割问题

题目描述:将一个8*8的棋盘进行分割,将原棋盘分割下一个矩阵,同时确保剩下的棋盘也是矩阵; 再将剩下的棋盘继续进行如上分割,这样割(n-1)次,最后原棋盘被分割成n块矩形棋盘; 注意:每...

python机器学习实现决策树

python机器学习实现决策树

本文实例为大家分享了python机器学习实现决策树的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ Created on Sat Nov...

python实现将一维列表转换为多维列表(numpy+reshape)

如题,我们直接使用numpy #!D:/workplace/python # -*- coding: utf-8 -*- # @File : numpy_reshape.py # @...

Python字符串特性及常用字符串方法的简单笔记

单引号和双引号都能表示字符串。区别在于转义的时候。 如果懒得加转义字符,可以通过在字符串前面加上r。例如: print r'C:\some\name' 通过在字符串里面添加反斜杠...