python - 在本地创建 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))
解决方案
该ZipFile.write
方法接受文件名,而不是文件内容。您应该改用该ZipFile.writestr
方法将文件内容写入 zip 文件:
zf.writestr(file, content)
推荐阅读
- reactjs - react js测试用例文件中如何模拟构造函数变量?
- plsql - PL/SQL UTL_FILE:循环如何自动返回下一行?
- java - session.getAttribute("用户名").toString(); JSP 页面出现错误?
- dataframe - 哪个是在 pyspark 中查询和连接配置单元表的最佳方法
- javascript - 轴上重复的日期刻度
- authentication - 如何使用 LDAP 身份验证启用 Streamset Mutitenancy
- laravel - 如何解决 Laravel 中的模态更新问题?
- excel - 列表框过滤器,使用过滤器后无法编辑文本框
- regex - 正则表达式忽略多个前缀并仅在它们没有一个或两个特定的硬编码属性时才匹配?
- node.js - 使用 got 进行可靠的文件下载