2013-10-10 42 views
0
the_list = [['a','b','c'],['b','c','d'],['c','d','e']] 
output = [] 
for k in the_list: 
    output.append(str(k)[1:-1].replace(',',"\t").replace("'",'').replace(' ','')) 

print output 
#['a\tb\tc', 'b\tc\td', 'c\td\te'] 
#for line in output: 
    #out_file.write(line + '\n') 

我試圖讓列表變成製表符分隔的格式,所以我可以寫入.xls文件,但唯一的辦法,我可以找出如何做到這一點似乎很單調。我想知道是否有人知道寫一個清單,一個.xls的更快,更高效,更「Python化」的方式將列表寫入.xls文件的大部分'pythonic'方法?

回答

1

你可以完成你正在尋找一個列表理解

output = ["\t".join(a) for a in the_list] 
格式

請參閱join上的python文檔。

+0

我知道有一些方法來使用加入! –

1

使用內置的csv庫。 http://docs.python.org/2/library/csv.html

假設out_file已經打開,在你的榜樣的註釋部分:

output_writer = csv.writer(out_file, delimiter="\t") 
output_writer.writerows(the_list) 

是有點迂腐,你正在寫一個製表符分隔的文件,而不是實際的Excel。 Excel可以處理製表符分隔的文件,但如果您需要的話,Excel Excel xlwt是常用的庫。使用它,你就會有這樣的事情:

wb = xlwt.Workbook() 
ws = wb.add_sheet('sheet_name') 
for rownum, sublist in enumerate(the_list): 
    for colnum, value in enumerate(sublist): 
     ws.write(rownum, colnum, value) 
wb.save(out_file) 
0

在使用製表符分隔的變量或CSV報告會經常工作,如果您需要UTF-8,則會期望失敗。一旦離開ASCII範圍,您將看不到您期望的字符。

我還沒有嘗試saxman01參考文獻中提到的真正的Excel產品,但如果目標是真正的Excel,它們可能更合適。他們會處理其他字符集嗎?如果你需要走向國際(甚至是國內或非英語國家的觀衆),只需要考慮一下。

然後你可能會問自己,Google Docs會做什麼?