我想知道之间有什么区别:
with codecs.open('xxxx.csv', 'rU') as h:
和
with codecs.open('xxxx.csv', 'rb') as h:
我想我记得当我开始阅读 .csv 文件的项目时有人说你应该使用“rb”而不是“rU”,但我似乎不能再次找到它。
谁愿意解释一下? 谢谢
最佳答案
作为the documentation声明,U
(通用换行)模式已弃用;你不应该再使用它了。而是使用 newline=
关键字参数。
The csv
documentation声明它更喜欢该参数为 ''
,因此 open
不会对换行符进行任何解释并将其留给 csv
模块.
由于您可能希望将 CSV 解码为文本(而非字节),因此以b
(二进制)模式打开它们没有实际意义。
底线:解析 CSV 文件的常用方法是:
with open('eggs.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile)
for row in spamreader:
...
这意味着您正在使用隐式open
模式rt
,以文本模式阅读。除非您有非常特殊的需求,否则这可能就是您想要的。上面的示例代码直接取自文档。
关于python - csv 的 open() 函数中的 'rb' 和 'rU' 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093326/