Python 如何为相同的文件内容创建相同的ZipFiles/Eggs
如果文件内容相同,如何使用Python创建完全相同的Zip文件 PythonPython 如何为相同的文件内容创建相同的ZipFiles/Eggs,python,zip,setuptools,egg,Python,Zip,Setuptools,Egg,如果文件内容相同,如何使用Python创建完全相同的Zip文件 PythonZipFile模块(甚至可能是底层的Zip库)将在归档文件中存储文件修改日期,这将导致生成的Zip文件存在差异 最后,我希望使用Setuptools(Python setup.py bdist_egg)创建Python egg,这些工具为未更改的打包内容生成相同的*.egg文件。现在,每当我(在自动构建过程中)重新创建一个Egg时,Egg文件每次都会更改(因为setuptools会在每次调用时重新复制包内容) Setup
ZipFile
模块(甚至可能是底层的Zip库)将在归档文件中存储文件修改日期,这将导致生成的Zip文件存在差异
最后,我希望使用Setuptools(Python setup.py bdist_egg
)创建Python egg,这些工具为未更改的打包内容生成相同的*.egg
文件。现在,每当我(在自动构建过程中)重新创建一个Egg时,Egg文件每次都会更改(因为setuptools会在每次调用时重新复制包内容)
Setuptools支持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