Py学习  »  Python

python将.txt列表转换为.xls

Atlas_Apple • 4 年前 • 141 次点击  

我发现这个有用的脚本可以将.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。脚本fails en为~42MB的文件生成以下错误消息:

 File
 "C:\Users\me\AppData\Local\Continuum\anaconda3\lib\site-packages\xlwt\Row.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

有人能帮我解决这个错误吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37921
 
141 次点击  
文章 [ 1 ]  |  最新文章 4 年前
c4ffrey
Reply   •   1 楼
c4ffrey    5 年前

.xls

.xlsx