【问题标题】:Writing BytesIO objects to in-memory Zipfile将 BytesIO 对象写入内存中的 Zipfile
【发布时间】:2021-10-15 09:39:40
【问题描述】:

我有一个基于 Flask 的 web 应用程序,我试图在不接触磁盘的情况下在内存中执行所有操作。

我创建了一个内存中的 Word 文档(使用 python-docx 库)和一个内存中的 Excel 文件(使用 openpyxl)。它们都是 BytesIO 类型。我想用 Flask 把它们都归还,所以我想把它们压缩起来,然后把压缩文件返回给用户的浏览器。

我的代码如下:

inMemory = io.BytesIO()
zipfileObj = zipfile.ZipFile(inMemory, mode='w', compression=zipfile.ZIP_DEFLATED)
    try:
        print('adding files to zip archive')
        zipfileObj.write(virtualWorkbook)
        zipfileObj.write(virtualWordDoc)

当 zipfile 尝试写入 virtualWorkbook 时,我收到以下错误: {TypeError}stat: 路径应该是字符串、字节、os.PathLike 或整数,而不是 BytesIO

我浏览了整个互联网,但空手而归,所以如果有人能解释我做错了什么,那就太棒了

【问题讨论】:

标签: python-3.x


【解决方案1】:

似乎将 tmpfs/ramdisk/smth 挂载到特定目录 like here 更容易,并且像往常一样使用 tempfile.NamedTemporaryFile()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2018-05-19
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多