首页 > 解决方案 > 如何使用 python 将以下代码中所有生成的图像保存到 Zip 文件中?

问题描述

我需要解码 content_arrays 列表中的数据并生成图像,下面的代码就是这样做的

    content_arrays = ['ljfdslkfjaslkfjsdlf' , 'sdfasfsdfsdfsafs'] // Contains a list of base64 encoded data
    i=0
    for content in content_arrays:
        img_data = (content_arrays[i])
        with open(filename, "wb") as fh:
            fh.write(base64.b64decode(img_data))
        i=i+1

如何将所有生成的图像直接存储到单个 zip 文件中,该文件包含通过从上述列表 [content_arrays] 解码 base64 字符串生成的所有图像。

下载数据的当前文件结构 ::

 -- Desktop 
     -- image1.png
     -- image2.png

下载数据所需的文件结构 ::

 -- Desktop
     -- Data.zip 
        -- image1.png
        -- image2.png

我使用过 python zipfile 模块,但无法弄清楚。如果有任何可能的方法,请提出您的建议..

标签: pythonpython-3.xlistbase64zip

解决方案


您可以只使用 zipfile 模块,然后将内容写入 zip 中的单独文件。在此示例中,我只是将内容写入内容列表中每个项目的 zip 内的文件。我在这里也使用 writestr 方法,因此我不必在磁盘上保存物理文件,我可以在内存中创建内容并将其写入我的 zip 中,而不必先在操作系统上将其创建为文件,然后再写入压缩包中的文件

from zipfile import ZipFile

with ZipFile("data.zip", "w") as my_zip:
    content_arrays = ['ljfdslkfjaslkfjsdlf', 'sdfasfsdfsdfsafs']
    for index, content in enumerate(content_arrays):
        #do what ever you need to do here with your content
        my_zip.writestr(f'file_{index}.txt', content)

输出 在此处输入图像描述

在此处输入图像描述


推荐阅读