2017-02-13 7 views
0

私は、次のような情報を複数のテキストファイルをしている:1つの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の新しい行に配置されてその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によって命名されるべき各シートに上記のデータと1つのワークブックをしたいです。別の問題は、データが最初の列にのみ転送されることです。

Agilent Technologies, Inc. 
Date 
2017-02-12 
+0

あなたは、各ティッカーのための新しいブックを作成している:例えば、私は上記の与えた例のテキストファイルは、Excelで次のようになります。 1つのブックに複数のシートが必要な場合は、 'workbook = xlwt.Workbook()'を 'ticker in tickers'ループの前に移動し、' workbook.save'をループの後に移動する必要があります。 –

答えて

1
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')) 
関連する問題