【发布时间】:2018-10-15 05:34:13
【问题描述】:
我有一个包含票务信息的 CSV 文件。我创建了一个小脚本,将用空格分隔的票号输入到列表中,该列表在 CSV 文件中搜索列表中的每张票,如果找到票,它会在该行输出信息。
我的问题是,如果我搜索不在 CSV 文件中的票证,它只是跳过它并继续前进,但我希望它告诉我该票证不在文件中。据我所知,它是逐行或逐行搜索 CSV 文件。如果我尝试 else 语句,它将开始打印 CSV 文件中的每一行,如果该票不在行中。
我需要能够输入多个票号并让 python 单独搜索每个票号。如果它在第 1 列中找到票,则打印该行的信息,如果在第 1 列的任何行中都找不到票,则打印出该票,然后打印“不在文件中”。
import csv
file = csv.reader(open('Path To CSV file', "rb"), delimiter=",")
newticket = raw_input('Enter Ticket Numbers:').split()
for line in file:
for tickets in newticket:
if tickets == line[1]:
print(tickets, line[36], line[37])
【问题讨论】:
-
如果您的 CSV 的大小可以管理,我会选择 PM 2Ring 的解决方案,它比您的解决方案更有效,并且是在 Python 中执行此类操作的一种非常常用的方法。如果您的文件太大而无法放入内存,我会查看数据库。但这超出了这个问题的范围,除非你的 csv 是千兆字节,否则应该不是问题。
标签: python python-2.7 csv search