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()