我正在开发一个小型音频项目,其中一部分需要使用wave文件和flac文件。我试图找出如何读取每个元数据以及如何手动添加标签。我无法弄清楚如何读取字节。
我一直在引用this page和其他几个人来查看Wave文件的完整格式,但是对于某些wave文件,我会遇到一些差异。我希望能够看到十六进制字节,以查看正在发生的差异。
简单地使用open('fname', 'rb')
和read,只返回字节作为字符串。使用struct.unpack已经适用于某些wave文件,但是它仅限于打印为字符串,整数或短裤,而且当我使用它时,我无法确切地看到出现了什么问题。有没有其他方法我可以用十六进制读取这个文件?
谢谢
答案 0 :(得分:0)
我假设您只想以十六进制显示二进制文件的内容。首先,您不需要使用Python作为本机的一些编辑器,例如vim。
现在假设您有一个通过读取文件获得的字符串,您可以轻松地将其更改为十六进制值列表:
with open('fname', 'rb') as fd: # open the file
data = rd.read(16) # read 16 bytes from it
h = [ hex(ord(b)) for b in data] # convert the bytes to their hex value
print (h) # prints a list of hexadecimal codes of the read bytes