TarArchiveLoader¶
- class torchdata.datapipes.iter.TarArchiveLoader(datapipe: Iterable[Tuple[str, BufferedIOBase]], mode: str = 'r:*', length: int = - 1)¶
从包含路径名称和 tar 二进制流的元组的可迭代 DataPipe 中打开/解压缩 tar 二进制流,并生成路径名称和提取的二进制流的元组(函数名称:
load_from_tar
)。- 参数:
datapipe – 提供路径名称和 tar 二进制流的元组的可迭代 DataPipe
mode – tarfile.open 用于读取文件对象的 文件模式。模式必须是 ‘filemode[:compression]’ 形式的字符串
length – DataPipe 的名义长度
注意
如果附加了默认的
DecoderDataPipe
,则将自动关闭打开的文件句柄。否则,用户应负责显式关闭文件句柄或让 Python 的 GC 定期关闭它们。示例
>>> from torchdata.datapipes.iter import FileLister, FileOpener >>> datapipe1 = FileLister(".", "*.tar") >>> datapipe2 = FileOpener(datapipe1, mode="b") >>> tar_loader_dp = datapipe2.load_from_tar() >>> for _, stream in tar_loader_dp: >>> print(stream.read()) b'0123456789abcdef'