【发布时间】:2018-08-06 23:48:40
【问题描述】:
我正在将 pdf 文件中的文本解析为有序 char 元数据行;我需要将这些文件序列化到云存储中,这一切都很好,但是由于它们的大小,我也想对这些文件进行 gzip,但我在那里遇到了一些问题。
这是我的代码:
import io
import csv
import zlib
# This data file is sent over Flask
page_position_data = pdf_parse_page_layouts(data_file)
field_order = ['char', 'position', 'page']
output_buffer = io.StringIO()
writer = csv.DictWriter(output_buffer, field_order)
writer.writeheader()
for page, rows in page_position_data.items():
for text_char_data_row in rows:
writer.writerow(text_char_data_row)
stored_format = zlib.compress(output_buffer)
这会将每一行成功读入 io.StringIO 缓冲区,但 gzip/zlib 似乎只适用于像 io.BytesIO 这样的字节类对象,所以最后一行错误;我无法创建读取 csv 到 BytesIO 缓冲区,因为 DictWriter/Writer 错误,除非使用 io.StringIO()。
感谢您的帮助!
【问题讨论】:
标签: python-3.x csv gzip