是否可以在 pandas 中读取带有 `\r\n` 行终止符的 csv?

Is it possible to read a csv with `\r\n` line terminators in pandas?

我正在使用 pandas==1.1.5 读取 CSV 文件。我是运行以下代码:

import pandas as pd
import csv

csv_kwargs = dict(
    delimiter="\t",
    lineterminator="\r\n",
    quoting=csv.QUOTE_MINIMAL,
    escapechar="!",
)
pd.read_csv("...", **csv_kwargs)

它引发了以下错误:ValueError: Only length-1 line terminators supported
Pandas 文档确认行终止符应该是 length-1(我想是单个字符)。

有什么方法可以用 Pandas 读取此 CSV 文件,还是我应该用其他方式读取它?
请注意,文档建议 length-1 用于 C 解析器,也许我可以插入一些其他解析器?

编辑:不指定行终止符会在文件中间引发解析错误。具体来说 ParserError: Error tokenizing data.,它需要正确数量的字段,但结果太多了。

EDIT2:我确信上面的 kwargs 用于创建我正在尝试读取的 csv 文件。

问题可能出在 escapchar 中,因为 ! 是一个普通的文本字符。

Python 的 csv 模块定义了一个 very strict use of escapechar:

A one-character string used by the writer to escape the delimiter if quoting is set to QUOTE_NONE and the quotechar if doublequote is False.

但有可能 pandas interprets it differently:

One-character string used to escape other characters.

您的一行中可能包含以下内容:

...\t"some important text!"\t...

这将转义引号字符并继续将文本解析到该列中。