以二进制模式访问文本文件有什么优势?

3
我们有一个文本文件,其中有多行。这些行可能以CR+LF或LF结尾。每一行都有若干个字段,由一个或多个字段分隔符分隔。 示例1:
field_separator = '\n'
with open('data.txt','r') as f:
    for line in f:
        line = line.split(field_separator)
        for element in line:
            print(element)

示例2:

field_separator = b'\n'
with open('data.txt','br') as f:
    for line in f:
        if line.endswith(b'\n'):
            line = line[0:-1]
        line = line.split(field_separator)
        for element in line:
            print(element)

问题:以二进制模式访问文本文件(示例2与示例1相比)有什么优势吗?

1个回答

6
如果您需要保留行尾样式,您必须使用二进制模式。文本模式总是将行尾转换为一致的样式。
如果您正在使用Python 3,而且不知道文件的字符编码模式,您可以使用二进制模式读取文件,以避免触发解码错误。将字节解码为Unicode字符串成为您的责任。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接