wave.readframes返回什么?

2024-05-20 22:39:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我按以下方式将值赋给变量x

import wave
w = wave.open('/usr/share/sounds/ekiga/voicemail.wav', 'r')
x = w.readframes(1)

当我输入x时,我得到:

'\x1e\x00'

所以x得到了一个值。但那是什么?是十六进制的吗?type(x)type(x[0])告诉我xx[0]是一个字符串。有谁能告诉我怎么解释这些弦吗?我能把它们转换成整数吗?


Tags: importshareusrtype方式openwavewav
3条回答

交互式解释器会像这样回显不可打印的字符。字符串包含两个字节,0x1E和0x00。您可以使用struct.unpack("<H", x)(小尾数!)将其转换为(字大小)整数。

它是一个双字节字符串:

>>> x='\x1e\x00'
>>> map(ord, list(x))
[30, 0]
>>> [ord(i) for i in x]
[30, 0]

此字符串表示字节。我想您可以用struct包将它们转换成整数,这样就可以解释字节字符串。

相关问题 更多 >