python中怎么快速比较2个文件中的内容

有2个搜索文件,其中第2个文件是第一个文件中数据的增减量文件(第2个文件内数据与第1个大致相同,有些新增的数据,有些删减的数据,数据在文件内已经逐条换行),我要写一个函数,提取出在一个文件但不在另一个文件中的数据,函数如下:
def filefind(src,des):
sf = open(src)
df = open(des)
sfline = sf.readlines()
dfline = df.read()
tmp = []
for lines in sfline:
if dfline.find(lines) == -1:
tmp.append(lines)
print tmp
else:
print dfline.find(lines)
sf.close()
df.close()
return tmp
src,des是2个文件路径,print语句用于测试,但运行时发现效率一般,因为文件内数据很多(250w条),所以一次大概要很长时间才能完成,有没有什么更高效率的方法?

交互式爱情
浏览 1881回答 3
3回答

喵喵时光机

可以用 difflib库,下面给一个例子,具体需求自己研究假如在同一个目录下有a.txt, b.txt 两个文本文件a.txt 内容是aaabbbb.txt内容是aaaccc1234567import difflib a = open('a.txt', 'U').readlines()b = open('b.txt', 'U').readlines()diff = difflib.ndiff(a, b) sys.stdout.writelines(diff)结果是:  aaa- bbb+ ccc

守候你守候我

分成几块然后用好几个thread来比较呗

江户川乱折腾

def filefine(src, des):retrun set(open(des).readlines()) - set(open(src).readlines())x64的话,应该没问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python