File size: 1,374 Bytes
bd4d522
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import zipfile

def zip_subdirectories(parent_directory, target_directory):
    if not os.path.exists(target_directory):
        os.mkdir(target_directory)
    for foldername, subfolders, filenames in os.walk(parent_directory):
        # 对每个直接子目录进行操作
        for subfolder in subfolders:
            zip_path = os.path.join(target_directory, f"{subfolder}.zip")
            # 创建Zip文件
            with zipfile.ZipFile(zip_path, 'w') as zipf:
                subfolder_path = os.path.join(foldername, subfolder)
                # 遍历子目录下的所有文件和子目录
                for root, _, files in os.walk(subfolder_path):
                    for file in files:
                        # 获取文件的绝对路径
                        file_path = os.path.join(root, file)
                        # 计算文件在zip文件中的路径
                        arcname = os.path.join(subfolder, os.path.relpath(file_path, start=subfolder_path))
                        # 将文件添加到zip文件中
                        zipf.write(file_path, arcname)
        # 由于os.walk()也会递归地访问子目录,我们可以跳过后续的遍历
        break

# 调用函数
zip_subdirectories('/mnt/petrelfs/zhuchenglin/LLaVA/playground/data/eval/gqa/data', '/mnt/hwfile/zhuchenglin/playground/eval/gqa/data')