Python 比较两个文本列表,检查是否重复,并将其标记在行尾
我正在尝试做一个由三部分组成的程序。我有两个文本文件,文本文件A和文本文件B 文本文件A必须将数据与文本文件B进行比较。如果存在副本,它将通过电子邮件发送。 如果没有副本,它将把数据写入文本文件B 我遇到的问题是,复制总是从文本文件的开头开始。我试图找到代码,从它检查的最后一行开始 这是我的复制代码Python 比较两个文本列表,检查是否重复,并将其标记在行尾,python,duplicates,text-files,Python,Duplicates,Text Files,我正在尝试做一个由三部分组成的程序。我有两个文本文件,文本文件A和文本文件B 文本文件A必须将数据与文本文件B进行比较。如果存在副本,它将通过电子邮件发送。 如果没有副本,它将把数据写入文本文件B 我遇到的问题是,复制总是从文本文件的开头开始。我试图找到代码,从它检查的最后一行开始 这是我的复制代码 f1 = open("/path/to/file1", "r") f2 = open("/path/to/file2", "r") txtfileA = f1.read() txtfileB
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
是否有更好的代码集,我做错了什么吗
任何建议都很好。您应该使用交叉点功能,而不是差异。另外,变量名中有一个输入错误
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
您可以使用:
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())
什么构成复制品?电话?一个角色?单词?@jgritty——它看起来像是从代码段中用空格分隔的“单词”。如果您要查找重复的单词,为什么要使用
set.difference
?您是否应该使用set.intersection
?在每一行中,您将发现8个字符,从0-9,a-z开始。它将是这些元素的混合体。打开时与常规打开时有什么区别打开时
将在完成后自动关闭文件。交集与差异之间的区别是什么:返回一个新集,其中的元素不在其他元素中。交集:返回一个新集,其中的元素与赛特和所有其他人。