我有一个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文件不是很大,我建议你把所有的东西都读一遍,把你想要的数据提取到字典里,把票号作为键。搜索字典很快。在
我修改了您的文件打开代码以使用
with
语句,如果在读取文件时出现问题,该语句将正常失败。顺便说一句,不需要指定逗号作为CSV分隔符,因为它是默认分隔符。在如果键不在dict中,
^{pr2}$dict.get
方法返回None
,但如果需要,可以指定另一个默认返回值。所以我们可以把这部分重写成这样:或者,我们可以使用
in
运算符:所有3个版本的效率大致相同,请选择您觉得最可读的版本。在
相关问题 更多 >
编程相关推荐