这是我的代码将 CSV 文件转换为.xlsx
文件,对于小尺寸 CSV 文件,此代码工作正常,但是当我尝试较大尺寸的 CSV 文件时,它显示错误。
import os
import glob
import csv
from xlsxwriter.workbook import Workbook
for csvfile in glob.glob(os.path.join('.', 'file.csv')):
workbook = Workbook(csvfile[:-4] + '.xlsx')
worksheet = workbook.add_worksheet()
with open(csvfile, 'r', encoding='utf8') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
worksheet.write(r, c, col)
workbook.close()
错误是
File "CsvToExcel.py", line 12, in <module>
for r, row in enumerate(reader):
_csv.Error: field larger than field limit (131072)
Exception ignored in: <bound method Workbook.__del__ of
<xlsxwriter.workbook.Workbook object at 0x7fff4e731470>>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/xlsxwriter/workbook.py", line
153, in __del__
Exception: Exception caught in workbook destructor. Explicit close() may be
required for workbook.
使用大文件时,最好使用“constant_memory”来控制内存使用,例如:
workbook = Workbook(csvfile + '.xlsx', {'constant_memory': True}).
Ref: xlsxwriter.readthedocs.org/en/latest/working_with_memory.html http://xlsxwriter.readthedocs.org/en/latest/working_with_memory.htm%E2%80%8C%E2%80%8Bl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)