IoPathSaver¶
- class torchdata.datapipes.iter.IoPathSaver(source_datapipe: IterDataPipe[Tuple[Any, Union[bytes, bytearray, str]]], mode: str = 'w', filepath_fn: Optional[Callable] = None, *, pathmgr=None, handler=None)¶
接收元数据和数据的元组的 DataPipe,将数据保存到由
filepath_fn
和元数据生成的 target path,并以 iopath 格式生成生成的路径(函数名:save_by_iopath
)。- 参数:
source_datapipe – 元数据和数据的元组的可迭代 DataPipe
mode – 用于写入数据的文件的打开模式(默认情况下为
"w"
)filepath_fn – 接收元数据并返回新文件 target path 的函数
pathmgr – 自定义
iopath.PathManager
。如果未指定,则会创建一个默认的PathManager
。
注意
默认的
PathManager
目前支持本地文件路径、普通 HTTP URL 和 OneDrive URL。S3 URL 仅在 iopath>=0.1.9 中受支持。示例
from torchdata.datapipes.iter import IterableWrapper def filepath_fn(name: str) -> str: return s3_url + name name_to_data = {"1.txt": b"DATA1", "2.txt": b"DATA2", "3.txt": b"DATA3"} source_dp = IterableWrapper(sorted(name_to_data.items())) iopath_saver_dp = source_dp.save_by_iopath(filepath_fn=filepath_fn, mode="wb") res_file_paths = list(iopath_saver_dp)