python遍历txt对比去重

我有两个txt文档比较大大概有10m里面有很多行,我想对比这两个文件中相同的行并且删除第二个文件中相同的行而且第二个文件中是utf8编码这要怎么去实现呢请大家帮忙一下最近在学习拍森
# -*- coding: utf-8 -*-
#
# python 2.7

fp1 = file('', 'r')
fp2 = file('', 'r')
fp3 = file('', 'w')

d1 = {}
d2 = {}

isFirst = True

for line in fp1:
if not isFirst:
d1[hash(line)] = line
else:
isFirst = False

fp1.close()

isFirst = True
for line in fp2:
if not isFirst:
d2[hash(line)] = line
else:
isFirst = False

fp2.close()

diff = set(d1.keys()) - set(d2.keys())
for key in diff:
fp3.write(d1[key])
fp3.close()
这样子可以么顺序是不一样的呢

如果只有10M的话,你可以把他们都读到内存里,使用python的set进行对比删除, 不过有一个问题就是,你的同一个文件里会不会有多条重复的数据。

如果解决了您的问题请采纳!
如果未解决请继续追问追问

同一个文件确实会有极少数的重复数据的,不是很多但确实有的

追答

我看你的需求是:对比这两个文件中相同的行并且删除第二个文件中相同的行

也就是说如果不同行,但是内容一样,那样也是不删除的,对么?

温馨提示:答案为网友推荐,仅供参考
相似回答