首页 > 解决方案 > 在本地创建 zipfile 并从 s3 写入文件

问题描述

我正在本地机器上创建一个 zipfile,并想从 s3 写入文件。到目前为止,我无法做到这一点。这就是我在此期间所拥有的。

import os
import zipfile
from fs import open_fs

fs = open_fs(os.getenv('s3_sample_folder'))
file_names = file_names() #list of file names

with zipfile.ZipFile('zipfile.zip', mode='w') as zf:
   for file in file_names:
       with fs.open('/'+file, 'rb') as remote_file:
           content = remote_file.read()
           zf.write(content, basename(content))

标签: pythonzipzipfile

解决方案


ZipFile.write方法接受文件名,而不是文件内容。您应该改用该ZipFile.writestr方法将文件内容写入 zip 文件:

zf.writestr(file, content)

推荐阅读