File size: 1,733 Bytes
f20b100 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import os
import zipfile
from pathlib import Path
def extract_multipart_zip():
# 设置工作目录和文件路径
target_dir = '/data/workspace/nips_2025_database/assets'
base_dir = '/data/workspace/nips_2025_database/assets'
# 创建目标文件夹
# os.makedirs(target_dir, exist_ok=True)
try:
# 获取所有分卷文件
zip_parts = sorted([f for f in os.listdir(base_dir) if f.startswith('lvm_2032fbx.zip.')])
if not zip_parts:
print("错误:未找到分卷文件")
return
print(f"找到以下分卷文件:")
for part in zip_parts:
print(f"- {part}")
# 合并所有分卷到一个临时文件
temp_zip = os.path.join(base_dir, 'temp_complete.zip')
print("\n开始合并分卷文件...")
with open(temp_zip, 'wb') as outfile:
for part in zip_parts:
part_path = os.path.join(base_dir, part)
print(f"正在处理: {part}")
with open(part_path, 'rb') as infile:
outfile.write(infile.read())
# 解压合并后的文件
print("\n开始解压文件...")
with zipfile.ZipFile(temp_zip, 'r') as zip_ref:
zip_ref.extractall(target_dir)
# 清理临时文件
os.remove(temp_zip)
print(f"\n解压完成!文件已保存到: {target_dir}")
except Exception as e:
print(f"解压过程中出现错误:{str(e)}")
if os.path.exists(temp_zip):
os.remove(temp_zip)
if __name__ == "__main__":
print("开始处理分卷文件...")
extract_multipart_zip() |