我正在开发一个程序,希望将结果写入以逗号分隔的文件(如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
答案 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]
,否则根据您的输出,您将在第一次迭代时得到“列表索引超出范围错误”。