2在python中对一个字节的恭维

2024-09-28 22:36:31 发布

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

我正在编写以下python代码:

import wave
from bitstring import BitArray


w = wave.open('file.wav','rb')

totalFrames = w.getnframes()      #Total number of samples
bytesData = w.readframes(totalFrames)
binData = BitArray(bytesData)
bin2Data = (binData.bin)

那个文件.wav有88200个样本,采样率为44.1KHz。 我的目标是能够从二进制数据中得到2的补充文件.wav. 'binData.bin文件'给出通过w.readframes获得的字节(\x00\x00N\x00n\xff..)的二进制形式,但采用字符串格式。你知道吗

我用这个来获得2's补偿:

2comp = ~(bin2Data) + 0b1

但这是徒劳的。它将显示以下错误:

Traceback (most recent call last):
  File "speaker_bin.py", line 16, in <module>
    bin2Data = ~((binData.bin)) + 0b1
TypeError: bad operand type for unary ~: 'str'

我试图int(bin2Data)转换它,但它不起作用(它根本不会打印任何东西)。我想是因为数据太大了。)

我做错什么了?你知道吗

如果有任何反馈,我将不胜感激。(即使是一个简单的轻推在正确的方向)


Tags: 文件数据代码fromimportbin二进制wave
1条回答
网友
1楼 · 发布于 2024-09-28 22:36:31

你需要使用

int(binData.bin, 2)

要创建int,可以将base指定为第二个参数,否则它只会假定该值以10为基数。从docs中可以看到,默认的基数是10,这就是为什么需要指定除10以外的其他基数

0b1也要这样做

相关问题 更多 >