0

我正在尽力解决以下情况:

我想比较 2 个文件(file1.txt 和 file2.txt)。第一个文件(file1.txt)包含字典(字符串)。它们用于搜索第二个文件(file2.txt)。如果在 file2.txt 中找到相同的字符串,则应将其删除。这应该遍历 file1 中的所有字符串。

我正在使用以下代码:

import csv
import os

    enter code here

crimefile = open('file1.txt', 'r')
reader = csv.reader(crimefile)
allRows = [row for row in reader]

crimefileB = open('file2.txt', 'r')
reader = csv.reader(crimefileB)
allRowsB = [row for row in reader]

for counter in xrange(0,allRowsB.count()):
    print count
    if allRows[count] == allRowsB[count]: allRowsB[count-2].remove
    enter code here

在附加的代码中,我将它们导出到列表中,但我不想在此方法中执行任务。

任何帮助都感激不尽。

4

1 回答 1

0

您可以执行以下操作:

import csv
import os

crimefile = open('file1.txt', 'r')
reader = csv.reader(crimefile)

# Sets are much faster for membership checks.  Also, using a generator 
# (the ()'s) instead of a list will save memory, as the entire file will
# not need to loaded in all at once.
filtervals = set((row for row in reader))

out = []
crimefileB = open('file2.txt', 'r')
reader = csv.reader(crimefileB)
for line in reader:
    if line not in filtervals:
        out.append(line)
# Don't forget to close the files you open!

out将包含由 file1.txt 过滤的 file2.txt。

您也可以将最后一点作为列表理解。

out = [ line for line in reader if line not in filtervals ]
于 2013-08-20T15:44:34.387 回答