用python比较两个文本文件并去除重复行。

22 浏览
0 Comments

用python比较两个文本文件并去除重复行。

此问题在以下已经有了答案:

在Python中读取文本文件并将其拆分为单词

在Python中从列表中删除重复项

如何替换字符串的多个子字符串?

我有两个文本文件,file1file2

File1包含许多随机单词,而file2包含我想从file1中删除的单词,当它们出现时。

有没有办法做到这一点?

我知道我应该包含自己尝试脚本的尝试,至少显示一些努力,但老实说,这是可笑的,不会提供任何帮助。

如果有人至少能给出一个关于从哪里开始的提示,那将不胜感激。

admin 更改状态以发布 2023年5月25日
0
0 Comments

如果你把单词读入一个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']

0
0 Comments

从每个文件中获取单词:

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, "")

0