old_len = len(old_data) new_len = len(new_data)
else: raise ValueError("Unknown opcode in patch") xdeltapatcher
for op in patch_ops: if op[0] == 'COPY': f_patch.write(b'\x01') # opcode COPY f_patch.write(op[1].to_bytes(8, 'little')) # position f_patch.write(op[2].to_bytes(4, 'little')) # length else: # ADD f_patch.write(b'\x02') # opcode ADD f_patch.write(bytes([op[1]])) # single byte old_len = len(old_data) new_len = len(new_data) else: raise
def apply_patch(old_file, patch_file, output_file): with open(old_file, 'rb') as f_old: old_data = f_old.read() 'little')) # position f_patch.write(op[2].to_bytes(4