Python 将.txt列表转换为.xls



我发现这个有用的脚本可以将.txt文件列表转换为xls文件。我仍然是 Python 新手,在修复脚本中的错误时遇到了一些麻烦。使用的脚本如下:

mypath = "I give my path here"
from os import listdir
from os.path import isfile, join
textfiles = [ join(mypath,f) for f in listdir(mypath) if isfile(join(mypath,f)) and '.txt' in  f]
def is_number(s):
try:
float(s)
return True
except ValueError:
return False        
import xlwt
import xlrd
style = xlwt.XFStyle()
style.num_format_str = '#,###0.00'  
for textfile in textfiles:
f = open(textfile, 'r+')
row_list = []
for row in f:
row_list.append(row.split(';'))
column_list = zip(*row_list)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
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'))

该脚本为前 10 个文件生成输出文件,这些文件都小于 1MB。脚本失败 en 为~42MB的文件生成以下错误消息:

File
"C:UsersmeAppDataLocalContinuumanaconda3libsite-packagesxlwtRow.py",
line 37, in __init__
raise ValueError("row index was %r, not allowed by .xls format" % rowx)
ValueError: row index was 65536, not allowed by .xls format

有人可以帮助我解决错误吗?

您会收到错误消息,因为文件格式.xls仅允许 65536 行(索引从 0 开始(。

应考虑使用.xlsx格式,或者如果需要向后兼容性,请在行计数超过 65536 时使用.xlsx作为"回退"格式,或者将输出拆分为多个文件。

最新更新