Skip to main content
 首页 » 编程设计

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

2025年05月04日8pander-it

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

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,以文本模式阅读。除非您有非常特殊的需求,否则这可能就是您想要的。上面的示例代码直接取自文档。