2016-08-20 66 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 
相关问题