0
我的整数列表是A = [14,10,0,0]
;使用bytearray()将整数列表写入Python 2.7中的.Bin文件导致10被转换为新行字符并写为0x14和0x10
f.write(bytearray(A))
我的二进制文件(视为HEX所示)
0e 0d 0a 00 00
通知的0a
我的整数列表是A = [14,10,0,0]
;使用bytearray()将整数列表写入Python 2.7中的.Bin文件导致10被转换为新行字符并写为0x14和0x10
f.write(bytearray(A))
我的二进制文件(视为HEX所示)
0e 0d 0a 00 00
通知的0a
的Python在字节表示解释号10作为换行符之前出现的附加0d
,更准确地说是ASCII换行符(LF):
In [1]: A = [14,10,0,0]
In [2]: bytearray(A)
Out[2]: bytearray(b'\x0e\n\x00\x00')
你有没有机会使用Windows?在那里,一个换行符作为一个回车符(CR,十六进制的0d)和一个换行字符序列写入文件。要避免这种与系统相关的翻译,您应该打开binary mode中的文件:
如果省略模式,则默认为'r'。默认情况下,使用文本模式,可以在写入时将'\ n'字符转换为特定于平台的表示并返回读取。因此,当打开一个二进制文件时,应该在模式值后加'b'以二进制模式打开文件,这将提高可移植性。
是。在Windows 10上,我实际上是以HEX格式打开文件。这就是实际问题所在。它的意思是十六进制。但由于某种原因它分成两个十六进制数字 – user1954188