gpt4 book ai didi

python - Zipfile python模块字节大小差异

转载 作者:行者123 更新时间:2023-11-28 22:04:29 24 4
gpt4 key购买 nike

我正在使用 python 的 zipfile 模块来提取我使用

从互联网上检索到的 zip 文件

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 压缩的,我什至尝试使用 ZIP_STORED 和 7zip 将其压缩为存储文件。

有什么想法吗?

最佳答案

这是在 Windows 上吗?也许试试 f = open(dest, 'wb')

仅在 Windows 上,b 使文件系统将文件视为二进制而不是纯文本,并且不会弄乱行尾。在其他系统上,没有区别(并且 b 被默默地忽略)。

关于python - Zipfile python模块字节大小差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com