FSSpecSaver¶
- class torchdata.datapipes.iter.FSSpecSaver(source_datapipe: IterDataPipe[Tuple[Any, Union[bytes, bytearray, str]]], mode: str = 'w', filepath_fn: Optional[Callable] = None, *, kwargs_for_open: Optional[Dict] = None, **kwargs)¶
接收元数据和数据的元组的数据管道,将数据保存到目标路径(由 filepath_fn 和元数据生成),并生成结果 fsspec 路径(函数名:
save_by_fsspec
)。- 参数:
source_datapipe – 具有元数据和数据的元组的可迭代数据管道
mode – 用于写入数据的文件打开模式(默认值为
"w"
)filepath_fn – 接收元数据并返回新文件目标路径的函数
kwargs_for_open – 可选的 Dict,用于指定打开文件 (
fs.open()
) 的关键字参数kwargs – 用于建立特定存储连接的额外选项,例如主机、端口、用户名、密码等。
示例
from torchdata.datapipes.iter import IterableWrapper def filepath_fn(name: str) -> str: return file_prefix + name name_to_data = {"1.txt": b"DATA1", "2.txt": b"DATA2", "3.txt": b"DATA3"} source_dp = IterableWrapper(sorted(name_to_data.items())) fsspec_saver_dp = source_dp.save_by_fsspec(filepath_fn=filepath_fn, mode="wb") res_file_paths = list(fsspec_saver_dp)