我想找到一种简单的方法来压缩一堆没有任何文件元数据的文件(例如时间戳)。 zip
命令似乎总是保留元数据。我看不到禁用元数据的方法。
我希望解决方案是命令或最多python脚本。谢谢。
答案 0 :(得分:0)
一些帖子已经指出,zip标头中的大多数元数据字段都必须存在。如果每次压缩的文件内容都是相同的,则唯一不同的字段就是时间戳。
可以通过创建ZipInfo
对象并更改时间戳来将时间戳强制为特定值。
这是概念证明
import zipfile
file = zipfile.ZipFile("test.zip", "w")
name = "/tmp/testfile.txt"
zi = zipfile.ZipInfo.from_file(name)
zi.date_time = (1980,1,1,0,0,0)
with file.open(zi, mode='w') as member:
with open(name, mode='rb') as file:
fileContent = file.read()
member.write(fileContent)
以上代码创建了test.zip
,其时间戳记与1980年1月1日硬连接。
$ unzip -l test.zip
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
307 1980-01-01 00:00 tmp/testfile.txt
--------- -------
307 1 file