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文件,但我能弄清楚如何做的唯一方法似乎非常单调。我想知道是否有人知道更快,更有效,更“pythonic”的方式将列表写入.xls
答案 0 :(得分:1)
答案 1 :(得分: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 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)
答案 2 :(得分:0)
如果您必须写信给XLS,我会使用这里给出的答案:
答案 3 :(得分:0)
虽然使用制表符分隔变量或csv通常会起作用,但如果需要UTF-8,则会出现故障。一旦你离开ASCII范围,你将看不到你期望的字符。
我没有尝试过saxman01引用中提到的真实Excel产品,但如果目标是Excel,它们可能更合适。他们会处理其他角色吗?如果你需要去国际(或者甚至是国内的非英语听众),你可以考虑一些事情。
然后你可能会问自己,Google Docs会做什么?