You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Foundry代码仓库中提取ZIP文件内容至指定文件夹

在Foundry中解压ZIP数据集文件到指定路径

你需要先定位输入数据集中的ZIP文件,再通过zipfile模块完成解压操作,同时要确保目标路径存在。以下是补充完整的代码:

from transforms.api import transform, Output, Input
import zipfile
import os

@transform(
    zip_file = Input('ri.foundry.main.dataset.123'),
    # 若要将解压后的文件输出为新数据集,建议添加Output参数,示例如下
    output_dataset = Output('ri.foundry.main.dataset.456')
)
def my_compute_function(ctx, zip_file, output_dataset):
    # 目标存储路径,若要输出到新数据集,可替换为output_dataset.path
    path_to_store_files_from_zip = 'path/to/store/files/from/zip'

    # 确保目标路径存在,不存在则自动创建
    os.makedirs(path_to_store_files_from_zip, exist_ok=True)

    # 遍历输入数据集的文件,筛选出ZIP文件(假设数据集内仅有一个ZIP文件)
    for file in zip_file.files():
        if file.name.endswith('.zip'):
            # 打开ZIP文件并解压所有内容到目标路径
            with zipfile.ZipFile(file.path, 'r') as zip_ref:
                zip_ref.extractall(path_to_store_files_from_zip)
                print(f"已成功解压ZIP文件到路径: {path_to_store_files_from_zip}")
            break

关键说明:

  • 导入os模块用于创建目标路径,避免因路径不存在导致解压失败
  • 通过zip_file.files()遍历输入数据集内的所有文件,通过后缀筛选ZIP文件(若ZIP文件名固定,也可直接通过文件名匹配)
  • 使用with语句打开ZIP文件,确保文件操作完成后自动关闭资源
  • 若需要将解压后的文件作为新的Foundry数据集输出,建议将目标路径替换为output_dataset.path,确保文件写入到输出数据集的存储路径中

内容的提问来源于stack exchange,提问作者jamba-laya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 16:38:17