从文件中读取字节而不在 Python 中指定编码 3
Reading bytes from file without specifying encoding in Python 3
在 Python 2 中,下面的代码将愉快地从二进制文件中加载前两个字节:
with open(file_name) as f:
b = f.read(2)
然而,在 Python 3 中,同样的结果可能会导致例如:
UnicodeDecodeError: 'utf-8' codec can't decode byte 2: invalid start byte
这让我想到了一个问题:如何在不指定编码的情况下从 Python3 中的文件中读取 N 个原始字节?
指定二进制模式:
with open(file_name, 'rb') as f:
你也应该在 Python 2 中这样做,除非你希望 CRLF 这样的错误在你的二进制文件中变成 LF。
在 Python 2 中,下面的代码将愉快地从二进制文件中加载前两个字节:
with open(file_name) as f:
b = f.read(2)
然而,在 Python 3 中,同样的结果可能会导致例如:
UnicodeDecodeError: 'utf-8' codec can't decode byte 2: invalid start byte
这让我想到了一个问题:如何在不指定编码的情况下从 Python3 中的文件中读取 N 个原始字节?
指定二进制模式:
with open(file_name, 'rb') as f:
你也应该在 Python 2 中这样做,除非你希望 CRLF 这样的错误在你的二进制文件中变成 LF。