我在python中读取csv文件时遇到了问题,同时只打印标题/列名,并且没有打印数据。
输出仅包含列名。未打印行值。请帮我解决这个问题。
我的代码在下面.
import csv
import sys
import datetime
import math
import re
f=open('VehicleMaster.csv','r')
try:
reader=csv.DictReader(f,delimiter=',')
num=' '
regx= re.compile('[,-/]')
for row in reader:
dt1=row['Date_Registered']
for xd in dt1.splitlines():
d,m,y=regx.split(xd)
dt2=('/'.join((d.zfill(2),m,'20'+y.zfill(2) if len(y)==2 else y)))
row['Date_Registered']=dt2
dt3= str(datetime.datetime.strptime(dt2,'%d/%b/%Y').date())
#print(dt3)
row['Date_Registered']=dt3![enter image description here][1]
#print(row)
print(num, '\t'.join(row))
if num == ' ':
num=0
num=num+1输出:-
Workstream_from_AL Manager work_steam risk_score Base Count Total_Downtime_Hours Class Vehicle_Description C111111 Total_Maint_Costs Date_Registered smr Workstream Latest_Mileage Base_Location Major_Repair_ Average_Downtime_Hours Age_in_Months__17_Mar_15_ Status Ob_Board_Power_ No_of_SMR_Jobs Reg_Number down_time Cost_Centre mileage Workshop age Date_of_Reading
1 Workstream_from_AL Manager work_steam risk_score Base Count Total_Downtime_Hours Class Vehicle_Description C111111 Total_Maint_Costs Date_Registered smr Workstream Latest_Mileage Base_Location Major_Repair_ Average_Downtime_Hours Age_in_Months__17_Mar_15_ Status Ob_Board_Power_ No_of_SMR_Jobs Reg_Number down_time Cost_Centre mileage Workshop age Date_of_Reading
2 Workstream_from_AL Manager work_steam risk_score Base Count Total_Downtime_Hours Class Vehicle_Description C111111 Total_Maint_Costs Date_Registered smr Workstream Latest_Mileage Base_Location Major_Repair_ Average_Downtime_Hours Age_in_Months__17_Mar_15_ Status Ob_Board_Power_ No_of_SMR_Jobs Reg_Number down_time Cost_Centre mileage Workshop age Date_of_Reading
3 Workstream_from_AL Manager work_steam risk_score Base Count Total_Downtime_Hours Class Vehicle_Description C111111 Total_Maint_Costs Date_Registered smr Workstream Latest_Mileage Base_Location Major_Repair_ Average_Downtime_Hours Age_in_Months__17_Mar_15_ Status Ob_Board_Power_ No_of_SMR_Jobs Reg_Number down_time Cost_Centre mileage Workshop age Date_of_Reading输入:- Count Reg_Number Status Vehicle_Description Date_Registered Age_in_Months__17_Mar_15_ Latest_Mileage Date_of_Reading No_of_SMR_Jobs Total_Downtime_Hours Average_Downtime_Hours Total_Maint_Costs Major_Repair_ Manager Cost_Centre Ob_Board_Power_ Class Base_Location C111111年龄里程smr C111111 Workshop #en20 20# Base
1 PN57KTE当前-陆上LF45 160d6.0Der 20-5-08 81.92876712 195591 2-Feb-15 30 110.83 3.694333333 14269.36大型起重机维修job 5,093.45作业没有V79166戈登汤普森40001072没有HGV东北卡车和范有限公司Tees -修理1 0维修三轮
1 YP09LFX当前福特中转350 2.4 TDi Der/Man 10 -6月-09 69.23835616 62589 9-3月15日10 169.5 16.95 6166.99新发动机和喷油器10 4,287.57工作没有V81240巴里沃森40001032是LCV Kestrel卡车服务有限公司北泰恩-修理1 0.961643836 1.11E-05 3.548325662 3.941860465 1 9.451841074修理北泰恩1 YP09KZK当前-安道福特中转350 2.4 TDi Der/文民卡车服务有限公司24-09 68.77808219 77171 12 -15 12 40.25 3.354166667 5867.05新引擎05 5,499.87作业编号: V78692 BARRY WATSON 40001032是LCV Howdon North Tyne -维修1 0.955251142 1.11E-05 3.375747986 0.78003876 1 6.111048999修理北台
1 YP09LCL当前福特中转350 2.4 TDi Der/Man 1-7月-09 68.54794521 19-15 10 101.25 10.125 8521.22新引擎£6,450.14工作没有V85143约翰理查德森40001053是LCV詹宁斯有限公司磨损-修理1 0.952054795 1.11E-05 4.902888377 2.354651163 1 9.209605446修复磨损
发布于 2015-07-06 09:23:35
之所以发生这种情况,是因为您对其项使用了csv.DictReader - in迭代,您的row变量将是dict类型的实例。当您在dict上迭代(在字符串的join方法中)时,您正在迭代它的键,这是行的名称,而您想要迭代它的值。
因此,您应该将print(num, '\t'.join(row))替换为print(num, '\t'.join(row.values()))。
注意:标准的python字典是无序的。我不记得csv模块是否使用OrderedDict或任何类似的。
https://stackoverflow.com/questions/31239571
复制相似问题