Я использую модуль zipfile для python для извлечения zipfile, который я извлек из Интернета, используя
urllib.urlretrieve()
файлы в zip-файле - это файлы исправлений, созданные bsdiff, однакокогда я позволяю python распаковать zip-файл и попробовать использовать bspatch, он говорит, что испорченный файл патча.Когда я вручную извлекаю zip-файл, используя 7-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 просто заархивировать его как сохраненный файл.
Есть идеи?