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

有2个文件,其中第2个文件是第一个文件中数据的增减量文件(第2个文件内数据与第1个大致相同,有些新增的数据,有些删减的数据,数据在文件内已经逐条换行),我要写一个函数,提... 有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条),所以一次大概要很长时间才能完成,有没有什么更高效率的方法?
展开
 我来答
鱼南嘉
推荐于2017-11-26 · 超过32用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:74.3万
展开全部

可以用 difflib库,下面给一个例子,具体需求自己研究

假如在同一个目录下有a.txt, b.txt 两个文本文件

a.txt 内容是

aaa

bbb


b.txt内容是

aaa

ccc


import 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

kaisa1028
2013-11-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2549万
展开全部
分成几块然后用好几个thread来比较呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-05
展开全部
def filefine(src, des):
retrun set(open(des).readlines()) - set(open(src).readlines())
x64的话,应该没问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
识掷路口

2013-11-05 · TA获得超过1091个赞
知道小有建树答主
回答量:1347
采纳率:57%
帮助的人:224万
展开全部
没使用过这个功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式