在Python中将文本写入zip文件

7

我有一个函数,它可以创建一个包含文本文件的zip归档文件。 是否可能在不创建临时文件的情况下完成此操作?

import zipfile
import os

PROJ_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)))


def create_zip(name, text):
    with open(os.path.join(PROJ_DIR, "_tmp_file_"), "w+") as f: 
        f.write(text)

    zf = zipfile.ZipFile(os.path.join(PROJ_DIR, "%s.zip" % name), "w",
                         zipfile.ZIP_DEFLATED)
    zf.write(os.path.join(PROJ_DIR, "_tmp_file_"), "/file.txt")
    zf.close()

1
你可以尝试使用StringIO代替临时文件。 - Yaroslav Admin
1个回答

12
您可以使用writestr代替write,以下是示例。
zf.writestr('/file.txt', text)

文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接