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