2014-10-01 2 views
0

Есть, например, три списка:CSV запись строки вместо седловины

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

Похоже, что вы хотите перенести свои данные. Итак, вместо 'zip (list4, list5, list6)' just '(list4, list5, list6)' без zip? – fredtantini

+0

OMG! :-) Не могли бы вы добавить комментарий как ответ? – setevoy

ответ

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

вы, кажется, следует путать между кортежами и списка в Python. каким бы то ни было способом второго питонического подхода было бы добавить имеющиеся кортежи в пустой список. Таким образом, вы можете динамически манипулировать доступными данными для записи 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 
Смежные вопросы