newline='' 在 csv 库中是啥意思?

Posted

技术标签:

【中文标题】newline=\'\' 在 csv 库中是啥意思?【英文标题】:What does newline='' mean in the csv library?newline='' 在 csv 库中是什么意思? 【发布时间】:2022-01-22 11:26:48 【问题描述】:

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

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

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

【问题讨论】:

docs.python.org/3/library/functions.html#open-newline-parameter 非常感谢,但对我来说还不够清楚:( '',不是"." 【参考方案1】:

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 你想要的功能。

【讨论】:

@SiamakMushakhian。你现在有足够的声望来投票

以上是关于newline='' 在 csv 库中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

MASM中CRLF是啥意思?

(*var)[n] 在 C++ 中是啥意思

%[^\n] 在 scanf() 格式字符串中是啥意思

(n,) 在 numpy 和向量的上下文中是啥意思?

utility 在计算机中是啥意思?

!== 和 === 在 PHP 中是啥意思? [复制]