我的代码如下。基本上,我有一个 CSV 文件和一个文本文件“input.txt”。我正在尝试创建一个 Python 应用程序,它将从“input.txt”获取输入并在 CSV 文件中搜索匹配项,如果找到匹配项,则它应该返回 CSV 文件的第一列。
import csv
csv_file = csv.reader(open('some_csv_file.csv', 'r'), delimiter = ",")
header = csv_file.next()
data = list(csv_file)
input_file = open("input.txt", "r")
lines = input_file.readlines()
for row in lines:
inputs = row.strip().split(" ")
for input in inputs:
input = input.lower()
for row in data:
if any(input in terms.lower() for terms in row):
print row[0]
假设我的 CSV 文件如下所示:
book title, author
The Rock, Herry Putter
Business Economics, Herry Putter
Yogurt, Daniel Putter
Short Story, Rick Pan
假设我的 input.txt 看起来像这样:
Herry
Putter
因此当我运行我的程序时,它会打印:
The Rock
Business Economics
The Rock
Business Economics
Yogurt
这是因为它首先搜索带有“Herry”的所有标题,然后再次搜索“Putter”。所以最后,我有书名的副本。我正在尝试找出一种删除它们的方法...因此,如果有人可以提供帮助,我们将不胜感激。
请您参考如下方法:
如果原始顺序无关紧要,则先将结果粘贴到一个集合中,然后在最后打印出来。但是,您的示例足够小,速度无关紧要。
