【问题标题】: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

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

【问题讨论】:

标签: python csv file parameters newline


【解决方案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。你现在有足够的声望来投票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2017-06-11
  • 2018-03-05
  • 2023-03-27
  • 2016-08-17
  • 2010-12-28
  • 1970-01-01
相关资源
最近更新 更多