写多个文本文件到不同的工作表上的一个Excel工作簿?

我有以下信息的多个文本文件:

Agilent Technologies, Inc. Date|Previous Close|Open|Day Low|Day High 2017-02-12|$50.47|$50.51|$50.02|$50.59 

每个文本文件都由其位于文本文件master.txt的新行上的master.txt 。 我需要一个工作簿与上面的数据应该由ticker名字,因此我使用下面的代码:

 import xlwt textfile = "C:/Python27/SublimeText/Stocks/Master/Excel.txt" with open("master.txt", 'r') as f: tickers = [line.rstrip('\n') for line in f] def is_number(s): try: float(s) return True except ValueError: return False style = xlwt.XFStyle() style.num_format_str = '#,###0.00' for ticker in tickers: try: f = open("%s.txt" % ticker, 'r+') except: pass row_list = [] for row in f: row_list.append(row.split('|')) column_list = zip(*row_list) workbook = xlwt.Workbook() worksheet = workbook.add_sheet('%s' % ticker) i = 0 for column in column_list: for item in range(len(column)): value = column[item].strip() if is_number(value): worksheet.write(item, i, float(value), style=style) else: worksheet.write(item, i, value) i+=1 workbook.save(textfile.replace('.txt', '.xls')) 

运行上面的代码时,每个ticker覆盖最后一个ticker ,而不是添加一个新的代码片。 另一个问题是数据只被传输到第一列。 例如,上面给出的示例文本文件在Excel中看起来如下所示:

 Agilent Technologies, Inc. Date 2017-02-12 

 workbook = xlwt.Workbook() # moved outside the loop for ticker in tickers: with open("%s.txt" % ticker, 'r') as f: worksheet = workbook.add_sheet('%s' % ticker) for row, line in enumerate(f): line = line.rstrip() for col, value in enumerate(line.split('|')): if is_number(value): worksheet.write(row, col, float(value), style=style) else: worksheet.write(row, col, value) workbook.save('all_the_files.xls'))