例如有三个列表:
list4 = (start_time, 'Test type1', 'Result1', 'Units1')
list5 = (start_time, 'Test type2', 'Result2', 'Units2')
list6 = (start_time, 'Test type3', 'Result3', 'Units3')
然后 - 他们用于:
report = open('111.csv', 'w')
writer = csv.writer(report, delimiter=';')
#writer = csv.writer(sys.stdout, delimiter=';')
for row in zip(list4, list5, list6):
writer.writerow(row)
这导致了这个结果:
$ cat 111.csv
2014-10-01 16:53:29;2014-10-01 16:53:29;2014-10-01 16:53:29
Test type1;Test type2;Test type3
Result1;Result2;Result3
Units1;Units2;Units3
但_ want - 它创建文件如:
2014-10-01 16:51:21;Test type1;Result1;Units1;
2014-10-01 16:51:21;Test type2;Result2;Units2;
2014-10-01 16:51:21;Test type3;Result3;Units3;
答案 0 :(得分:1)
好像你想转置你的数据。因此,只需使用zip(list4, list5, list6)
或(list4, list5, list6)
:
[list4, list5, list6]
>>> zip(list4,list5,list6)
[(1, 1, 1), ('Test type1', 'Test type2', 'Test type3'), ('Result1', 'Result2', 'Result3'), ('Units1', 'Units2', 'Units3')]
但
>>> [list4,list5,list6]
[(1, 'Test type1', 'Result1', 'Units1'), (1, 'Test type2', 'Result2', 'Units2'), (1, 'Test type3', 'Result3', 'Units3')]
答案 1 :(得分:1)
你似乎在python中的元组和列表之间感到困惑。任何第二种pythonic方法都可以将可用元组附加到空白列表中。这样,您可以动态操作csv写入的可用数据,而不是硬编码:
csv_data = []
a = (start_time, 'Test type1', 'Result1', 'Units1')
b = (start_time, 'Test type2', 'Result2', 'Units2')
c = (start_time, 'Test type3', 'Result3', 'Units3')
if len(a)==4 :#eg condition: check if a has 4 elements
csv_data.append(a)
#some other condition
csv_data.append(b)
#check if start_time is 1 day ago
csv_data.append(c)
#manipulated csv data is available in list csv_data
print csv_data