python实现大文件切片及组装
有助于实现文件切片传输,断点续传等
有时候前端会将大文件切片传输,后端服务可以记录文件哈希,文件总块数,已接受块数,存入缓存或数据库,即可实现断点续传
文件切片成指定大小 chunk_size 为 kb
def split_file(filename, chunk_size):
with open(filename, 'rb') as file:
index = 0
chunk = file.read(chunk_size)
while chunk:
with open(f"{filename}.{chunk_size}.{index}", 'wb') as chunk_file:
chunk_file.write(chunk)
index += 1
chunk = file.read(chunk_size)
组装
def merge_files(filename, chunk_size):
with open(f"{filename}_new", 'wb') as file:
index = 0
has_chunk = True
while has_chunk:
try:
with open(f"{filename}.{chunk_size}.{index}", 'rb') as chunk_file:
file.write(chunk_file.read())
index += 1
except FileNotFoundError:
has_chunk = False