在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
这就引出了一个问题:如何在不指定编码的情况下从Python 3中的文件中读取N个原始字节?
发布于 2015-05-27 15:13:47
指定二进制模式:
with open(file_name, 'rb') as f:
您也应该在Python 2中这样做,除非您希望像CRLFs这样的bug成为二进制文件中的LFs。
https://stackoverflow.com/questions/30494664
复制