我正在尝试将前3行Vehicle Owners.csv写入Speeding Owners.csv以及Speeding Vehicles.csv的第3和第4行。但是,如果没有超速车辆与车主相匹配,则车主将失去车主.cv
有人可以解释为什么这不起作用吗?
Speeding Vehicles.csv看起来像这样:
GH76GHJ,华莱士街,30,35.0
GH67MNB,华莱士街,30,35.0
GH76GHJ,绿色街道,40,55.9
GH76GJ,绿色街道,40,55.9
Vehicle Owners.csv如下所示:
GH76HJK,1红街,罗斯赌博 BH98LOP,1国王路,muammar gaddafi
CX87YHJ,1艾莉森驱动器,chandler bing
HJ09UJI,6 avenue,idi amin
KI59TOM,7华尔街,罗伯特·马卡布
我目前的代码是:
import csv
with open('Vehicle Owners.csv', 'r') as vehicleownersfile:
owner_reader = csv.reader(vehicleownersfile)
details = {row[0].lower(): row for row in owner_reader}
with open('Speeding Vehicles.csv', 'r') as speedingvehiclesfile:
owner_reader = csv.reader(speedingvehiclesfile)
with open('Speeding Owners.csv', 'w') as speedingownersfile:
sowriter = csv.writer(speedingownersfile)
with open('Missing Owners.csv', 'w') as missingownersfile:
mowriter = csv.writer(missingownersfile)
for row in owner_reader:
detail = details.get(row[1].lower())
if detail is None:
mowriter.writerow(row[0], row[1], row[2])
else:
sowriter.writerow(row[0], row[1], row[2], detail[1], detail[2])
答案 0 :(得分:1)
我并不完全知道你要做什么,但对我来说,Python(3)大声说writerow
需要1个参数,所以我不得不替换这些行:
mowriter.writerow(row[0], row[1], row[2])
sowriter.writerow(row[0], row[1], row[2], detail[1], detail[2])
通过
mowriter.writerow(row[0:3])
sowriter.writerow(row[0:2] + detail[1:3])