2012-08-10 20 views
2

我有一個大名單,包含了一系列的ID和相關的值,大大地縮短了版本看起來像這樣:導出非理想列表格式到Excel

large = [('550111', [(4, 5, 8), (6, -4, -6)]), ('222211', [(2, -4, 5), (1, 15, -4)])] 

我要導出這一個出類拔萃方式5501將在A1,則第一組值將根據其在B1B2 & B3C1下一集,C2C3,然後有一個空間,然後在E12222,第一組值與相關,F2 & F3,第二個在G1,G2,G3。即在Excel(有自己的Excel矩形的事情本身的每一個值),如:

550111 
4 5 8 
6 -4 -6 
'space here (dont know how to add one)' 
222211 
2 -4 5 
1 15 -4 
'SPACE HERE AGAIN' 

我已經試過follwoing:

writer_jobby = csv.writer(open('poo5.csv', 'wb'), delimiter=',') 

for i in large: 

    if i == '[': 

     i.replace() 

    if i == ']': 

     i.replace() 

    if i == '(': 

     i.replace() 

    if i == ')': 

     i.replace() 

    else: 

     writer_jobby.writerow(i) 

,但我得到絕對荒謬的,因爲我有多麼掙扎處理我列表中的[]()。如果有人能夠闡明我如何處理這些數據,那麼我可以以期望的方式導出數據,我真的很感激。謝謝。

非常感謝。

EDIT

新期望的形式含絕對最大值

550111 
4,5,8 
6,-4,-6 
'space here' 
'Max:' 
6, 5, 8 
'space here'  
222211 
2,-4,5 
1,15,-4 
'space here' 
'Max:' 
2, 15, 5 
'space here' 
1, 2, 3, ........, 8904 

回答

1

也許會有這樣的幫助嗎?

import csv 
large = [('5501', [(4, 5, 8), (6, -4, -6)]), ('2222', [(2, -4, 5), (1, 15, -4)])] 

with open("out1.csv", "wb") as fp: # open the file, call it fp, and autoclose it 
    writer = csv.writer(fp, delimiter=",") 
    for entry in large: 
     writer.writerow([entry[0]]) # one-element list 
     for line in entry[1]: # loop over each tuple in the second element 
      writer.writerow(line) 
     writer.writerow([]) # write an empty row 

這產生

localhost-2:coding $ cat out1.csv 
5501 
4,5,8 
6,-4,-6 

2222 
2,-4,5 
1,15,-4 

csv模塊通常用於通過從元件寫入行。我不知道final是什麼,但它看起來像你試圖用從large製造的字符串做一些事情,這不會很好。

+0

史詩:D Thnaks一百萬! – user1532369 2012-08-10 14:23:42

+0

哦,'最後'和'大'是同樣的東西,我忘了更改名稱 – user1532369 2012-08-10 14:24:39

+0

任何建議,我怎麼可以在每個值集合末尾的空格後加上'Max'從上面的每個最大值,然後是另一個空間......在非常靈活的空間之後加上數字1到8904?請看我上面的編輯 – user1532369 2012-08-10 15:10:36