比较两个文本列表,检查重复并将其标记为行尾

时间:2014-06-13 02:01:19

标签: python duplicates text-files

我正在尝试做一个3部分的程序。我有两个文本文件,文本文件A和文本文件B

文本文件A必须将数据与文本文件B进行比较。如果存在重复,则会通过电子邮件发送。 如果没有重复,它会将数据写入文本文件B。

我遇到的问题是,复制始终从文本文件的开头开始。我正在尝试找到代码,从它检查的最后一行开始。

这是我的复制码。

f1 = open("/path/to/file1", "r") 
f2 = open("/path/to/file2", "r") 

txtfileA = f1.read()
txtfileB = f2.read()

txtfileA_words = txtfileA.split()
txtfileB_words = txtfileB.split()

result = set(textfileA_words).difference(set(txtfileB_words))

print result

是否有更好的代码集,我做错了什么?

任何建议都会很好。

2 个答案:

答案 0 :(得分:1)

你应该使用交叉功能,而不是差异。此外,您在变量名称中输入了拼写错误。

f1 = open("/path/to/file1", "r") 
f2 = open("/path/to/file2", "r") 

txtfileA = f1.read()
txtfileB = f2.read()

txtfileA_words = txtfileA.split()
txtfileB_words = txtfileB.split()

# remove the extra e in textfileA_words and use intersection
result = set(txtfileA_words).intersection(set(txtfileB_words))

print result

答案 1 :(得分:0)

你可以使用:

with open('path/to/file1', 'r') as f1, open('path/to/file2', 'r') as f2:
    result = set(f1.read().split()).intersection(set(f2.read().split())