以二进制(非字节)形式读取 .mp3 文件
Reading a .mp3 file as binary (NOT bytes)
我正在尝试获取 python 中音乐 (.mp) 文件的二进制表示形式。我目前只能以字节表示它。当我尝试将这些字节转换为二进制时,我不断收到错误。这是我当前的程序:
folder=os.listdir(os.getcwd())
for files in folder:
if files.endswith(".mp3"):
file = open(files, 'rb')
stream = str(file.read()).split("\")
print(stream)
for bit in range(1,len(stream)):
"""
print(stream[bit])
newbit = f"0{stream[bit]}"
c = BitArray(hex=newbit)
#print(c.bin)
"""
print(stream[bit][1:])
print(bin(int(stream[bit][1:], base=16)))
我一直收到同样的错误:
line 39, in <module>
print(bin(int(stream[bit][1:], base=16)))
ValueError: invalid literal for int() with base 16: '00Info'
当我检查语句 print(stream)
中的字节时,字节 x00Info
没有出现。我以前从未使用过字节,所以我不知道发生了什么。
import sys
with open(sys.argv[1], 'rb') as f:
for c in f.read():
print(bin(c)[2:])
您没有指定您期望的输出,但是,这将打印二进制文件。
我正在尝试获取 python 中音乐 (.mp) 文件的二进制表示形式。我目前只能以字节表示它。当我尝试将这些字节转换为二进制时,我不断收到错误。这是我当前的程序:
folder=os.listdir(os.getcwd())
for files in folder:
if files.endswith(".mp3"):
file = open(files, 'rb')
stream = str(file.read()).split("\")
print(stream)
for bit in range(1,len(stream)):
"""
print(stream[bit])
newbit = f"0{stream[bit]}"
c = BitArray(hex=newbit)
#print(c.bin)
"""
print(stream[bit][1:])
print(bin(int(stream[bit][1:], base=16)))
我一直收到同样的错误:
line 39, in <module>
print(bin(int(stream[bit][1:], base=16)))
ValueError: invalid literal for int() with base 16: '00Info'
当我检查语句 print(stream)
中的字节时,字节 x00Info
没有出现。我以前从未使用过字节,所以我不知道发生了什么。
import sys
with open(sys.argv[1], 'rb') as f:
for c in f.read():
print(bin(c)[2:])
您没有指定您期望的输出,但是,这将打印二进制文件。