2016-08-20 29 views
3

當條件不是大寫時,我希望在excel文件中打印'out.csv'數據。但是out.csv中的數據是數據列表而不是字符串。如何將excel文件寫入列表而不將其轉換爲字符串? (因爲我有其他的文件,該文件可能需要使用列表,而不是字符串)「TypeError:在write()中不支持的類型<class'list'>」

Python版本3.5.1#

import xlsxwriter 
import csv 
import xlwt 

f1= open('out.csv') 
data=csv.reader(f1) 

# Create a new workbook and add a worksheet 
workbook = xlsxwriter.Workbook('1.xlsx') 
worksheet = workbook.add_worksheet() 

# Write some test data. 

for module in data: 
    str1 = ''.join(module) 
    if str1.isupper(): 
     pass 
    else: 
     worksheet.write('A', module) 


workbook.close() 
+1

你只是想'worksheet.write( 'A',STR1)'?我對「xlsxwriter」一無所知,所以我不知道你是否可以一次寫出多個項目。 – Blckknght

+0

也許這將有助於:http://stackoverflow.com/questions/19305109/most-pythonic-way-to-write-list-to-xls-file 此外,爲什麼你不能有一個字符串和列表版本你想寫什麼和使用哪一個是必要的? – zachyee

+0

我在shell中的輸出是[AAA_BBB_CCC_DDD_EEE],[FFF_GGG_HHH_III_JJJ]等,它們是數組形式的列表。但我希望用循環在列A1,A2等Excel文件中輸出這些輸出 – mickeymouse

回答

0

How do I write the list to excel file without converting it to string

你既可以在列表循環和write()每個元素,或者你可以使用XlsxWriter write_row()方法一次寫入列表。

事情是這樣的:

row = 0 
col = 0 
for module in data: 
    str1 = ''.join(module) 
    if str1.isupper(): 
     pass 
    else: 
     worksheet.write_row(row, col, module) 
     row += 1 
相關問題