比较两个文件中的行,如果它们相等则删除

时间:2016-09-23 15:32:22

标签: python file-comparison

我正在打开两个文件 - 一个包含要进行比较的新文件,另一个包含我需要从此文件中删除的热门词。到目前为止,我已将此作为一项功能:

def remove(file, buzz):
    #outer for loop cycles through the buzz file
    for line in buzz:
        #inner for loop cycles through the new file
        for line2 in file:
            if (line==line2):
                file.remove(line2)
            else:
                continue

其中file是在main()中打开并传递给它的新文件,而buzz是从main()打开并传递的buzz文件。

删除部分无效,新文件不会更改。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

首先阅读每个文件的内容并将它们放在列表中:

a_list = open(file_a).read().splitlines()
b_list = open(file_b).read().splitlines()

然后删除a_list中b_list中的单词:

a_list = [word for word in a_list if word not in b_list]

a_list现在只包含不在b_list

中的单词

答案 1 :(得分:0)

打开并将文件数据放入列表中:

/* comment */

然后过滤掉单词:

file_data = [line.strip() for line in open(file)]
buzz_data = [line.strip() for line in open(buzz)]

最后将新数据写入文件:

new = [line for line in file_data if line not in buzz_data]