我如何使用Python创建Zip文件,因为它们的文件内容是完全相同的?
Python ZipFile
模块(或者甚至可能是基础Zip库)将在归档中存储文件修改日期,这将导致生成的Zip文件存在差异。
最终,我想使用Setuptools(python setup.py bdist_egg
)创建Python egg,它们为未更改的打包内容生成相同的*.egg
文件。现在,每当我重新创建一个Egg(在自动构建过程中)时,egg文件每次都会更改(因为setuptools会在每次调用时重新打开包内容)。
Setuptools uses Python ZipFile模块。
import os, time, hashlib
from zipfile import ZipFile
tn = 'test.txt'
zn0 = "z0.zip"
zn1 = "z1.zip"
zn2 = "z2.zip"
with open(tn, 'w') as t:
t.write("hello")
z0 = ZipFile(zn0, 'w')
z1 = ZipFile(zn1, 'w')
z2 = ZipFile(zn2, 'w')
z0.write(tn)
z1.write(tn)
time.sleep(2)
os.system("touch %s" % tn)
z2.write(tn)
h = []
for i in xrange(3):
m = hashlib.sha256()
m.update(open('z%d.zip' % i, 'rb').read())
h.append(m.hexdigest())
print h[0] == h[1]
print h[0] == h[2]
代码输出True
,False
,而我想True
,True
。