在新的csv文件中重复值

时间:2018-11-17 00:57:42

标签: python csv

我正在开发一个程序,希望将结果写入以逗号分隔的文件(如CSV)中。

 new_throughput =[]
 self.t._interval = 2
 self.f = open("output.%s.csv"%postfix, "w")
 self.f.write("time, Byte_Count, Throughput \n")
 cur_throughput = stat.byte_count  
 t_put.append(cur_throughput)
 b_count = (cur_throughput/131072.0) #calculating bits
 b_count_list.append(b_count)
 L = [y-x for x,y in zip(b_count_list, b_count_list[1:])] #subtracting current value - previous, saves value into list
 for i in L:    
     new_throughput.append(i/self.t._interval)                                                                                                               
     self.f.write("%s,%s,%s,%s \n"%(self.experiment, b_count, b_count_list,new_throughput)) #write to file

运行此代码时,我将其保存到CSV文件中 picture here。 每次都会以某种方式打印出先前的值。

我想要的是每行新行:

time , byte_count, throughput  
20181117013759,0.0,0.0  
20181117013759,14.3157348633,7.157867431640625  
0181117013759,53.5484619141,, 19.616363525390625  

1 个答案:

答案 0 :(得分:0)

我没有一个简单的示例,但是您的最后一行应引用每个列表的最后一个成员,而不是整个列表。像这样:

 self.f.write("%s,%s,%s,%s \n"%(self.experiment, b_count, b_count_list[-1],new_throughput[-1])) #write to file

编辑:...尽管如果您希望这种简单的解决方案能够正常工作,则应使用一个初始值(例如, [0],否则根据您的输出,您将在第一次迭代时得到“列表索引超出范围错误”。