可以通过以下步骤实现:
import os
import zipfile
def split_zip_file(file_path, chunk_size):
# 创建一个目录来存储拆分后的文件块
output_dir = os.path.dirname(file_path)
output_dir = os.path.join(output_dir, 'split_files')
os.makedirs(output_dir, exist_ok=True)
# 打开zip文件
with zipfile.ZipFile(file_path, 'r') as zip_ref:
# 获取zip文件中的所有文件列表
file_list = zip_ref.namelist()
# 拆分zip文件
for file_name in file_list:
# 读取文件内容
with zip_ref.open(file_name) as file:
# 按照指定的块大小拆分文件
chunk_num = 0
while True:
chunk = file.read(chunk_size)
if not chunk:
break
# 生成拆分后的文件名
output_file_name = f'{file_name}.part{chunk_num}'
# 写入拆分后的文件块
with open(os.path.join(output_dir, output_file_name), 'wb') as output_file:
output_file.write(chunk)
chunk_num += 1
file_path = 'path/to/your/zip/file.zip'
chunk_size = 1024 * 1024 # 指定块大小为1MB
split_zip_file(file_path, chunk_size)
这样,zip文件将被拆分成多个块,并保存在与原文件同级的split_files
目录中。每个块的命名方式为原文件名加上.part
和块编号。
这个方法适用于需要将大型zip文件拆分成较小块的场景,例如在网络传输或存储时。拆分后的文件块可以单独处理或合并为原始zip文件。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云