我们有一个包含多行的文本文件。这些行可以以 CR+LF 或 LF 结尾。每行都有几个字段,由 field_separator(一个或多个字符)分隔。
示例 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)?
最佳答案
如果您需要保留行尾样式,您必须使用二进制模式。文本模式将始终翻译行尾以保持一致。
如果您使用的是 Python 3 并且不知道文件的字符编码模式,则可以使用二进制模式读取文件而不会触发解码错误。将字节解码为 Unicode 字符串成为您的责任。
关于python - 以二进制模式访问文本文件有一些优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603477/