我正在使用python的zipfile模块来提取从internet上检索到的zipfile
urllib.urlretrieve()
zip文件中的文件是由bsdiff创建的补丁文件,但是当我让python提取zip文件并尝试使用bspatch时,它显示的是损坏的补丁文件。当我使用7-zip手动提取zip文件时,覆盖补丁文件,然后运行补丁程序,它可以很好地修补。我还注意到,当手动覆盖这些文件时,字节大小不同。在
一个应该是195字节但是是196字节,一个应该是20656字节但是是20781字节,一个大小是正确的(这是唯一一个没有损坏的补丁消息的补丁程序)
我用来提取的代码是:z = zipfile.ZipFile('patchfiles.zip', 'r', zipfile.ZIP_DEFLATED)
z.printdir()
for info in z.infolist():
if not os.path.isdir(patchdir):
os.mkdir(patchdir)
fname = info.filename
data = z.read(fname)
dest = os.path.join(patchdir, fname)
data = z.read(fname)
f = open(dest, 'w')
f.write(data)
f.close()
z.close()
zip文件是用普通的Deflate压缩的,我甚至试过用7zip存储的zip嫘,只是将其压缩为一个存储文件。在
有什么想法吗?在