ZipArchiveLoader¶
- class torchdata.datapipes.iter.ZipArchiveLoader(datapipe: Iterable[Tuple[str, BufferedIOBase]], length: int = - 1)¶
从包含路径名和 zip 二进制流元组的可迭代数据管道中打开/解压缩 zip 二进制流,并生成路径名和提取的二进制流元组(函数名:
load_from_zip
)。- 参数:
datapipe – 提供路径名和 zip 二进制流元组的可迭代数据管道
length – 数据管道的标称长度
注意
如果附加了默认的
DecoderDataPipe
,则打开的文件句柄将自动关闭。否则,用户应负责显式关闭文件句柄或让 Python 的 GC 定期关闭它们。由于 zipfiles 如何实现其open()
方法,因此以下 data_stream 变量不能在该函数的范围内关闭。示例
>>> from torchdata.datapipes.iter import FileLister, FileOpener >>> datapipe1 = FileLister(".", "*.zip") >>> datapipe2 = FileOpener(datapipe1, mode="b") >>> zip_loader_dp = datapipe2.load_from_zip() >>> for _, stream in zip_loader_dp: >>> print(stream.read()) b'0123456789abcdef'