您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将多个.CSV文件发送到.ZIP,而不用Python存储到磁盘

将多个.CSV文件发送到.ZIP,而不用Python存储到磁盘

zipfile一个标准库模块,可以完全满足您的需求。在您的用例中,肉类和土豆是一种称为“ writestr”的方法,该方法采用文件名以及其中要压缩的文件名。

在下面的代码中,我对文件解压缩时使用了顺序命名方案,但是可以将其切换为所需的文件名。

import zipfile
import StringIO

zipped_file = StringIO.StringIO()
with zipfile.ZipFile(zipped_file, 'w') as zip:
    for i, file in enumerate(files):
        file.seek(0)
        zip.writestr("{}.csv".format(i), file.read())

zipped_file.seek(0)

如果要对代码进行过时的验证(提示Python 3提示提示),则可能要切换到使用io.BytesIO而不是StringIO,因为Python 3都是关于字节的。另一个好处是,在读取之前,io.BytesIO不需要显式查找(我还没有使用Django的HttpResponse测试这种行为,因此我保留了该最终查找,以防万一。)

import io
import zipfile

zipped_file = io.BytesIO()
with zipfile.ZipFile(zipped_file, 'w') as f:
    for i, file in enumerate(files):
        f.writestr("{}.csv".format(i), file.getvalue())

zipped_file.seek(0)
python 2022/1/1 18:36:59 有231人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶