【问题标题】:How to save created Zip file to file system in python?如何在 python 中将创建的 Zip 文件保存到文件系统?
【发布时间】:2016-06-01 10:55:53
【问题描述】:

我使用 python zipfile 模块创建了一个 zip 文件,如下所示:

s = StringIO()
zip_file = zipfile.ZipFile(s, "w")
zip_file.write('/local/my_files/my_file.txt')
s.seek(0)

现在,我希望将这个zip_file 保存在我的文件系统中的路径/local/my_files/ 上作为my_file.zip。 通常为了保存一个 noraml 文件,我使用了以下流程:

with open(dest_file, 'w') as out_file:
    for line in in_file:
        out_file.write(line)

但是,我想我无法用这个来保存压缩文件。谁能帮我完成这项工作。

【问题讨论】:

    标签: python python-2.7 zipfile


    【解决方案1】:
    zip_file = zipfile.ZipFile("/local/my_files/my_file.zip", "w")
    zip_file.write('/local/my_files/my_file.txt')
    zip_file.close()
    

    ZipFile 对象初始化的第一个参数是您要保存 zip 文件的路径。

    【讨论】:

      【解决方案2】:

      如果您需要使用 StringIO,只需尝试以下代码:

      from StringIO import StringIO
      import zipfile
      
      s = StringIO()
      with zipfile.ZipFile(s, "w", compression=zipfile.ZIP_DEFLATED) as zf:
          zf.write('/local/my_files/my_file.txt')
      
      with open('/local/my_files/my_file.zip', 'wb') as f_out:
          f_out.write(s.getvalue())
      

      或者你可以用更简单的方式来做:

      import zipfile
      
      with zipfile.ZipFile("/local/my_files/my_file.zip", "w", compression=zipfile.ZIP_DEFLATED) as zf:
          zf.write("/local/my_files/my_file.txt")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-10
        • 2013-08-19
        • 2018-05-05
        • 2016-06-20
        • 2015-02-05
        • 2016-11-22
        • 2020-04-08
        • 2016-10-03
        相关资源
        最近更新 更多