python - r 和 rb 模式下解析文本文件的区别

标签 python file-io text-parsing

是什么让在 'r' 模式下解析文本文件比在 'rb' 模式下解析更方便? 尤其是当相关文本文件可能包含非 ASCII 字符时。

最佳答案

这在一定程度上取决于您使用的 Python 版本。在 Python 2 中,Chris Drappier's answer适用。

在 Python 3 中,这是一个不同(且更一致)的故事:在文本模式 ('r') 中,Python 将根据您提供的文本编码解析文件(或者,如果你不给一个,依赖于平台的默认值),read() 会给你一个 str。在二进制 ('rb') 模式下,Python 不会假设文件包含可以合理解析为字符的内容,并且 read() 会给你一个 字节 对象。

另外,在 Python 3 中,通用换行符('\n' 和特定于平台的换行符约定之间的转换,因此您不必关心它们)可用于文本模式任何平台上的文件,而不仅仅是 Windows。

关于python - r 和 rb 模式下解析文本文件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644110/

相关文章:

python - 图像处理: Import stills from video into python/matplotlib?

python - 多处理卡住计算机

php - 使用 PHP 解析 pdftk dump_data_fields?

c - 类似预处理器的替换到解析器中

python - 使用Python授权下载到特定位置

python - 从 python 文件而不是命令行运行 pytest 测试

java - file.delete() 不会删除文件,java

java - 使用 Struts2 获取实际文件类型 :file control

c - 获取每个文件行的整数个数

javascript - 智能解析字符串构建复杂的api调用