1

我正在打开两个文件 - 一个包含用于比较的新文件,另一个包含我需要从该文件中删除的流行语。到目前为止,我有这个功能:

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是正在打开并从中传递的 Buzz 文件main()

删除部分不起作用,新文件不会更改。

有什么建议么?

4

2 回答 2

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 中的单词

于 2016-09-23T15:41:05.077 回答
0

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

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]

最后将新数据写入文件:

with open(file,"w") as f:
    for i in new:
        f.write(i+"\n")
f.close()
于 2016-09-23T16:06:09.843 回答