大家好,又见面了,我是你们的朋友全栈君。
我试图用wave库从wave文件中读取二进制数据。数据以’\x0f\x06\x0a…’的形式读取和报告,我想把十六进制数转换成整数(你知道,以10为基数)。我把这些字符当作十六进制字符来处理,但我并没有把这些字符当作十六进制字符来处理。在import wave
import struct
path=”C:\\directory\\file.wav”
file=wave.open(path,’r’)
data=file.readframes(10)
print repr(data)
‘\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00’
^{pr2}$
当我尝试像struct.unpack(‘i’,’\xff’)
是这样吗解包结构应为长度为4的字符串,而只接收长度为1的字符串。我很清楚为什么会发生这种情况,但是是否有一个用于unpack的格式选项允许我解包’\xff’?在struct.unpack(‘i’,’0xff’)
显然工作得很好。同样struct.unpack(‘i’,r’\xff’)
有效。在
或者,是否有一种方便的方法来转换类似“\xff\x01\x63…”的字符串
对一个原始字符串(尽管我不确定这是否有意义,因为“\x”被视为转义字符(这是正确的术语吗?)而不是字符),或格式为“0xff0x010x63”。在
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150800.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...