【发布时间】:2015-07-06 19:11:44
【问题描述】:
目前,我有
导入的 csv
并为用户输入一个注册变量。我还有一个名为
的 CSV 文件"已知文件 reg 和 names.csv"
我将其称为“文档”,其中包含姓名、地址和注册信息;如此处所示:
Bob Job GH58JBL 9, Henderson lane
Dan strobe WK15HYO 12, Dominic Road
Alex Nail VA11ZWU 6, Yake lane
Sam Jones WX63GKP 273, Soomy Avenue
John English WK64HRK 67, Wane Close
我有一个程序,它检测一个输入的注册是否在一个叫做注册的变量中;与文档中的注册信息匹配。
import csv
registation=str(input("Please enter you registation plate."))
with open('Known file reg and names.csv', 'rt') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
for field in row:
if field == registation:
print("We have found your reg in our database")
当输入与文档中匹配的注册时,这将导致程序输出“我们已在我们的数据库中找到您的注册”。
然后我有另一段代码“应该”将程序中的注册变量和文档中的匹配信息写入另一个包含特定人员详细信息的 csv 文件。
with open("saved database.csv", "w", newline="") as csvfile:
w = csv.writer(csvfile)
w.writerow([registation])
w.writerow([field])
所以如果我输入“WK15HYO”,程序应该比较文档中的信息和输入的注册变量,并重写应该是的人信息
WK15HYO Dan strobe, 12, Dominic Road
但是,情况并非如此,而是发生了程序编写
67,Wane Close` 和 WK15HYO
。它不是写 12, Dominic road 和 Dan strobe。 请给我一些关于我做错了什么以及如何解决问题的见解。
【问题讨论】:
-
您应该在找到记录后停止迭代。打印找到记录后继续,因此字段仅代表文件中字段的最后一个值。
-
那么我该如何解决这个问题呢?很抱歉造成混乱。
-
你需要
break退出你的 for 循环。因为你有两个,你需要在内部做一些事情(比如设置一个变量),外部也可以检查和中断。您可以尝试并发布更新的代码,或者我相信有人会尽快将我的评论变成答案。 -
你能举个例子吗?