用python比较两个文本文件并去除重复行。
用python比较两个文本文件并去除重复行。
此问题在以下已经有了答案:
我有两个文本文件,file1
和file2
。
File1
包含许多随机单词,而file2
包含我想从file1
中删除的单词,当它们出现时。
有没有办法做到这一点?
我知道我应该包含自己尝试脚本的尝试,至少显示一些努力,但老实说,这是可笑的,不会提供任何帮助。
如果有人至少能给出一个关于从哪里开始的提示,那将不胜感激。
admin 更改状态以发布 2023年5月25日
如果你把单词读入一个set
中(每个文件都要一个),你可以使用set.difference()
。如果你不关心输出的顺序,那么它就可以工作。
如果你关心顺序,那么把第一个文件读入一个列表中,把第二个文件读入一个set
中,并删除列表中在set
中存在的所有元素。
a = ["a", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"] b = {"quick", "brown"} c = [x for x in a if not x in b] print c
得到的结果是:['a', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
从每个文件中获取单词:
f1 = open("/path/to/file1", "r") f2 = open("/path/to/file2", "r") file1_raw = f1.read() file2_raw = f2.read() file1_words = file1_raw.split() file2_words = file2_raw.split()
如果您想从文件1中获取不在文件2中的唯一单词:
result = set(file1_words).difference(set(file2_words))
如果您关心从文件1的文本中删除单词:
for w in file2_words: file1_raw = file1_raw.replace(w, "")