一個字節的恭維我的工作在下面的Python代碼:2在蟒蛇
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)
的file.wav具有44.1KHz的採樣率88200個樣本。 我的目標是能夠獲得2從file.wav獲得的二進制數據的讚美。 'binData.bin'給出了通過w.readframes
獲得的字節的二進制形式(\x00\x00N\x00n\xff..
),但是以字符串格式。
我是用這個來獲得2'scompliment:
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)
將它轉換,但它不會工作
什麼我做錯了嗎?
我真的很感激任何反饋。 (即使是在正確的方向上簡單的微調)
其他不同的基礎,我認爲'binData.bin'回報一個字符串,所以你可能需要將它轉換爲整數befo重新應用該運營商。像'int(binData.bin,2)' – smac89
相關可能的重複︰http://stackoverflow.com/questions/17067813/convert-ascii-character-to-signed-8-bit-integer-python –