使用搜索字词列表

时间:2015-12-07 17:52:38

标签: python csv filter

我觉得我错过了什么。我有一个csv文件和一个搜索词列表。我只是希望返回符合特定条件的csv文件中的所有数据行。

import csv
search = open("example.txt", "rb")
searchlist = []
for x in search:
    searchlist.append(x)

with open("test.csv", "rb") as f:
    reader = csv.reader(f)
    rows = [row for row in reader]

我创建了两个列表,一个包含搜索词,另一个包含列表中csv文件的每一行数据。我试过循环浏览它们但我觉得这不对:

for row in rows:
    for z in searchlist:
         if z not in row:
               print row

对于如何将一个列表与另一个列表进行比较感到非常困惑。如果有一个简单的方法来做这个/更多pythonic的写作方式,我非常感谢一个例子,以及为什么上面的代码不起作用。

编辑:

好的全部排序归功于所有输入的人,添加完成的代码供参考:

import re

searchlist = []
with open("example.txt") as g:
    for line in g:
        searchlist.append(line.strip())

pattern = re.compile("|".join(searchlist))
with open("test.csv") as f:
    for line in f:
        if re.search(pattern,line):
            print line
            #line = line.split(",")
            #print line[5]

2 个答案:

答案 0 :(得分:2)

我会这样做:

position:absolute;

答案 1 :(得分:1)

因为它适合你,我将它作为答案添加,以便你可以标记它:

for row in rows:
    for z in searchlist:
         if z not in row:
               print row
               break

有多种方法可以进行“模糊”比赛。这取决于你的目标。