我是python新手,正在寻找有关我正在工作的任务的指导。在
我正在导入一个csv文件,它看起来像下面的列表。在
invoice_id,customer_first_name,customer_last_name,part_number,quantity,total
18031,Hank,Scorpio,367,1,2.63
54886,Max,Power,171,3,50.79
19714,Jonathan,Frink,179,2,7.93
19714,Jonathan,Frink,378,2,32.34
22268,Gil,Gunderson,165,2,47.15
87681,Lionel,Hutz,218,1,50.83
84508,Lurleen,Lumpkin,257,1,81.95
34018,Lionel,Hutz,112,3,88.88
34018,Lionel,Hutz,386,3,86.04
34018,Lionel,Hutz,216,1,53.54
66648,Patty,Bouvier,203,3,70.47
我只想打印每一行,如果它基于用户输入的条件。例如,如果用户输入lname,然后输入Hutz,则会打印出以下内容。在
^{pr2}$这就是我目前所拥有的。。。在
salesdatafile= None
while True:
salesdatafilename=input("Enter the name of the file:")
try:
salesdata= open(salesdatafilename, 'r')
break
except FileNotFoundError:
print("{0} was not found".format ( salesdatafilename ))
search=input("Do you want to search by invoice id or lname? Please type id or lname: ")
idsearch=salesdata.readline()
if search== 'id':
idnumber=print(int(input('Please enter Id to search: ')))
while idsearch != '':
if idsearch== idnumber:
print(idsearch)
else:
lname=print(input('Please enter your last name: '))
while idsearch != '':
if idsearch== lname:
print(idsearch)
所有打印出来的都是用户输入的lname或id。在
为了提高性能,我将使用一个生成器来读取这些行,这样我的程序不会崩溃,如果这是一个更大的文件。所以我将用生成器函数生成文件中的每一行。因为生成器返回iteratirs,所以我将迭代并过滤不包含我的搜索值的每一行,只返回包含我的搜索值的行。在
在代码中,您将整行与idnumber或lname进行比较。相反,你可能想试试
这将检查lname是否在某个行中。在
Python内置了一个csv模块,您应该使用它。查看下面的示例代码:
相关问题 更多 >
编程相关推荐