You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pypdf将PDF保存至内存?原StringIO方案报错求助

解决pypdf将PDF写入内存的TypeError问题

你遇到的错误是因为StringIO仅用于处理文本数据,而PDF是二进制格式,pypdf的write()方法输出的是字节流,两者不兼容。解决方法很简单,把StringIO换成BytesIO即可——BytesIO是专门用来在内存中处理二进制数据的类。

修正后的代码如下:

import pypdf
from io import BytesIO 

with open('route_to_pdf.pdf', 'rb') as file:
    pdf_reader = pypdf.PdfReader(file)
    first_page = pdf_reader.pages[0]
    file_in_ram = BytesIO()
    pdf_writer = pypdf.PdfWriter()
    pdf_writer.add_page(first_page)
    pdf_writer.write(file_in_ram)
    
    # 若需读取内存中的二进制PDF数据,可执行以下操作
    file_in_ram.seek(0)
    pdf_binary_data = file_in_ram.read()

补充说明:pypdf的write()方法并非只能接受路径,它同样支持实现了二进制写入接口的类文件对象(比如BytesIO),只要确保对象是二进制模式的可写流即可。

内容的提问来源于stack exchange,提问作者Simón

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:18:15