python - csv 的 open() 函数中的 'rb' 和 'rU' 有什么区别

标签 python python-3.x csv

我想知道之间有什么区别:

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/

相关文章:

python - 使用 python => 使用 RESTful API 数据从 JSON 到 pandas DataFrame

Python csv writerows 重新格式化日期时间以包括秒

csv - 使用Data Lake Tools for ViS将HDInsight/Hadoop以Excel/CSV格式将数据提取到本地计算机

python - 将特定功能应用于 Spark 数据框中的结构化列的有效方法?

python - 在页面上使用 selenium 查找电子邮件地址

python - 涉及正态变量的累积分布函数的限制

python - 无法按请求登录网站

mysql - 通过从文本文件中读取密码连接到数据库

python - Qt 按钮样式从 ui 预览到原始窗口各不相同

python - 如何在 python 中将 Avro 文件转换为 CSV 文件?