首先,在创建的第一个分卷文件 test.z01的前面加上 \x50\x4b\x07\x08 这个是分卷压缩的文件头(header),占4个字节。其实单个压缩文件本身 header 就有这个了,而分卷压缩的需要两个emmm。之后便是从单个大压缩文件文件test.zip中读取 "一个分卷大小 -4 个字节"的数据,写入test.zip.001中,如何接着读取一个分卷大小的数据,写入test.zip.002,以此类推。
import os
import random
import sys
import zipfile
def zip_by_volume(file_path, block_size):
file_size = os.path.getsize(file_path)
path, file_name = os.path.split(file_path)
suffix = file_name.split('.')[-1]
zip_file = file_path + '.zip'
with zipfile.ZipFile(zip_file, 'w') as zf:
zf.write(file_path, arcname=file_name)
if file_size <= block_size:
return zip_file
else: