我试图读取并转换成二进制文本,任何人都可以阅读。我有麻烦的错误消息:在位置11“UTF-8”编解码器不能解码字节0×81:无效的起始字节
我已经遍及:Reading binary file and looping over each byte努力试图打开并阅读在某种程度上二进制文件的多个版本。阅读有关此错误消息后,多数人要么不得不以将该.cvs文件的麻烦,或者不得不为UTF-8更改为-16。但在https://en.wikipedia.org/wiki/UTF-16#Byte_order_encoding_schemes阅读起来,Python不使用-16了。
此外,如果我添加编码= UTF-16/32,错误状态:二进制模式并不需要的编码参数
这里是我的代码:
with open(b"P:\Projects\2018\1809-0068-R\Bin_Files\snap-pac-eb1-R10.0d.bin", "rb") as f:
byte = f.read(1)
while byte != b"":
byte = f.read(1)
print(f)
我期待着能够读取和写入二进制文件。我想翻译为十六进制,然后到文本(或易读的文本以某种方式),但我想我有之前要经过这一步。如果任何人都可以与我缺少什么帮助,将不胜感激!任何方式打开和读取二进制文件将被接受。感谢您的时间!
我不知道,但是这可能帮助:
import binascii
with open('snap-pac-eb1-R10.0d.bin', 'rb') as f:
header = f.read(6)
b = bytearray(header)
binary=[bin(i)[2:].zfill(8) for i in b]
n = int('0b'+''.join(binary), 2)
nn = binascii.unhexlify('%x' % n)
nnn=nn.decode("ascii")[0:-1]
result='.'.join(str(ord(c)) for c in nnn[0:-1])
print(result)
输出:
16.0.8.0