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