python csv字符串写入_python - Python写入csv,一旦检查了字符串是否在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")

此方法有效,当输入与文档中的一个匹配的注册时,程序将输出“我们已在数据库中找到您的注册”。

然后,我还有另一段代码“应该”将程序中的注册变量和匹配信息从doc写入具有特定人员详细信息的另一个csv文件。

with open("saved database.csv", "w", newline="") as csvfile:

w = csv.writer(csvfile)

w.writerow([registation])

w.writerow([field])

因此,如果我输入了“ WK15HYO”,则程序应将doc中的信息与输入的注册变量进行比较,然后将其信息重写为

WK15HYO Dan Dominic Road 12号闪光灯

但是,事实并非如此,而是在编写程序

67,Wane Close`和WK15HYO

。它没有写12,多米尼克之路和丹选通。请问我在做错什么以及如何解决问题方面有一些见识。

最佳答案

好,有几件事。首先,您似乎完全不需要遍历每一行中的字段。如果注册始终是第二件事,则只需在row[1]中查找注册。当您将field写入csv文件时,您写入的是分配给变量“ field”的最后一个内容,在这种情况下,是csv的最后一行中的最后一个条目67, Wane Close。下面的代码将专门搜索索引1处的注册,将完整信息另存为user_info(或您选择的任何名称),然后结束迭代。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:

if row[1] == registration:

user_info = row

break

当您进行打印时,您现在有了一些选择。是否要将所有信息按名称,注册,地址顺序打印到一行?然后,您可以简单地使用:

with open("saved database.csv", "w", newline="") as csvfile:

w = csv.writer(csvfile)

w.writerow(user_info)

如果您想做其他事情,则可以通过按所需顺序编写每个组件来轻松实现。此人的姓名应为user_info[0],其注册为user_info[1]和地址为user_info[2]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值