是什么让在 '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/