我觉得我错过了什么。我有一个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]
答案 0 :(得分:2)
我会这样做:
position:absolute;
答案 1 :(得分:1)
因为它适合你,我将它作为答案添加,以便你可以标记它:
for row in rows:
for z in searchlist:
if z not in row:
print row
break
有多种方法可以进行“模糊”比赛。这取决于你的目标。