【问题标题】:How to create an empty zip file?如何创建一个空的 zip 文件?
【发布时间】:2014-08-08 03:06:33
【问题描述】:

我正在使用zipfile,在某些情况下,我需要为某些占位符目的创建一个空的 zip 文件。我该怎么做?

我知道:

在 2.7.1 版更改:如果文件是使用模式“a”或“w”创建的 然后关闭而不向存档中添加任何文件, 空存档的适当 ZIP 结构将被写入 文件。

但我的服务器使用较低版本,如 2.6。

【问题讨论】:

    标签: python zipfile


    【解决方案1】:

    您可以创建一个空的 zip 文件,而无需 zipfile 为:

    empty_zip_data = b'PK\x05\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
    
    with open('empty.zip', 'wb') as zip:
        zip.write(empty_zip_data)
    

    empty_zip_data是一个空zip文件的数据。

    【讨论】:

    • 对于 Python 3 使用 empty_zip_data = b'PK\x05...
    【解决方案2】:

    你可以这样做:

    from zipfile import ZipFile
    archive_name = 'test_file.zip'
    with ZipFile(archive_name, 'w') as file:
      pass
    

    【讨论】:

    • 投反对票,因为这不会产生可读的ZipFile (zipfile.BadZipFile: File is not a zip file)
    • 适用于我在 Linux 和 Windows 以及 Python 3.8 和 Python 3.9 上。创建的 zip 文件是 Python 和 7-Zip 中的有效 ZIP 文件。
    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 2012-10-16
    • 1970-01-01
    • 2016-02-06
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多