如何创建一个空的 zip 文件?

Posted

技术标签:

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

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

我知道:

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

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

【问题讨论】:

【参考方案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 文件。

以上是关于如何创建一个空的 zip 文件?的主要内容,如果未能解决你的问题,请参考以下文章

dotnetzip 创建空的损坏文件

ZipArchive php 获取损坏或空的 zip

如何使用密码创建 zip 文件

使用 Java 创建的 ZIP 文件在使用 Windows 资源管理器打开时显示为空

如何创建文件名以点开头的 zip 文件

PHPSpreadsheet - 如何从 PHPSpreadsheet 创建一个 zip 文件?