CSVParser¶
- class torchdata.datapipes.iter.CSVParser(source_datapipe: IterDataPipe[Tuple[str, IO]], *, skip_lines: int = 0, decode: bool = True, encoding: str = 'utf-8', errors: str = 'ignore', return_path: bool = False, as_tuple: bool = False, **fmtparams)¶
接受一个由文件名和 CSV 数据流组成的元组组成的 DataPipe,逐行读取并返回 CSV 文件中的内容(功能名称:
parse_csv
)。默认情况下,每个输出都是一个 List,但它取决于fmtparams
。- 参数:
source_datapipe – 包含文件名和 CSV 数据流的元组的源 DataPipe
skip_lines – 每个文件开头要跳过的行数
strip_newline – 如果为
True
,则会去除换行符decode – 如果为
True
,则会根据指定的encoding
解码文件内容encoding – 文件的字符编码(默认为’utf-8’)
errors – 解码时使用的错误处理方案
return_path – 如果为
True
,则每行将返回路径和内容的元组,而不是仅返回内容as_tuple – 如果为
True
,则每行将返回一个元组而不是列表
示例
>>> from torchdata.datapipes.iter import IterableWrapper, FileOpener >>> import os >>> def get_name(path_and_stream): >>> return os.path.basename(path_and_stream[0]), path_and_stream[1] >>> datapipe1 = IterableWrapper(["1.csv", "empty.csv", "empty2.csv"]) >>> datapipe2 = FileOpener(datapipe1, mode="b") >>> datapipe3 = datapipe2.map(get_name) >>> csv_parser_dp = datapipe3.parse_csv() >>> list(csv_parser_dp) [['key', 'item'], ['a', '1'], ['b', '2'], []]