csv 库中的 newline='' 是什么意思?

What does newline='' mean in the csv library?

我在 python 中阅读有关 CSV 库的内容,然后卡在了这一行:“如果 csvfile 是一个文件对象,它应该用换行符=''打开。”你能给我解释一下这是什么意思吗?或者给我一个例子,我在哪里可以找到确切的含义?

在这里,您可以找到 link 到 CSV 库的示例: https://docs.python.org/3/library/csv.html#csv-fmt-params

我在屏幕截图中也突出显示了该行,但不知道您是否看到它。

Python的文件对象,读取文件时默认使用universal newlines。这意味着当您读取文件时,任何 '\n''\r''\r\n' 字符串都会被翻译成 '\n'csv 模块不希望文件对象执行通用换行符转换,因为 CSV 的某些方言允许换行符出现在引用的字符串中。

例如,这可以解释为 3 行 CSV,在第二行的字符串中间有某种换行符(应该按照它在文件中出现的形式保留,因为换行符是数据的一部分):

1,"foo bar",2
3,"baz
quux",4
5,"spam spam",6

csv 模块自己处理 Reader 对象中的换行符,因此它希望 file 对象传递未修改的换行符。这就是 newline='' 告诉 open 你想要的功能。