繁体   English   中英

Python - 将.txt 文件转换为.xls 或.xlsx

[英]Python - Convert .txt file to .xls or .xlsx

我有来自 form.data 的数据,因此我将其转换为 .txt 文件,因为在其中打开 Microsoft Excel 未完全加载它。 有超过 200 万行。

出于这个原因,我决定尝试使用 python 和以下脚本将 convert.txt 转换为.xls 或.xlsx:

import csv
import openpyxl

input_file = 'path/to/inputfile.txt'
output_file = 'path/to/outputfile.xls'

wb = openpyxl.Workbook()
ws = wb.worksheets[0]

with open(input_file, 'rb') as data:
    reader = csv.reader(data, delimiter='\t')
    for row in reader:
        ws.append(row)

wb.save(output_file)

但我for row in reader: _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

txt数据格式

打开文件时,您必须在第二个参数中设置正确的模式。

使用rb您以二进制模式打开它,但在这里您应该编写r以使用文本模式

所以你的代码应该是:

import csv
import openpyxl

input_file = 'path/to/inputfile.txt'
output_file = 'path/to/outputfile.xls'

wb = openpyxl.Workbook()
ws = wb.worksheets[0]

with open(input_file, 'r') as data:  # read in text mode
    reader = csv.reader(data, delimiter='\t')
    for row in reader:
        ws.append(row)

wb.save(output_file)

正如评论中已经提到的,Excel 不适合这种数据量,因为它仅限于 1048576 行,但即使低于此数量,处理速度也会很慢。 您真的应该尝试导入为 csv 或直接导入为 tsv。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM