从 wave 文件中读取字节 python

Reading bytes from wave file python

我正在做一个小音频项目,其中一部分需要使用 wave 文件和 flac 文件。我试图弄清楚如何读取每个中的元数据以及如何手动添加标签。我无法弄清楚如何按原样读取字节。

我一直在参考 this page 和其他一些人来查看 Wave 文件的完整格式,但是对于某些 wave 文件,我发现了一些差异。我希望能够看到十六进制字节以查看发生了什么差异。

仅使用 open('fname', 'rb') 并读取,仅 returns 字节作为字符串。使用 struct.unpack 对某些 wave 文件有效,但它仅限于打印为字符串、整数或短裤,我在使用它时看不出到底出了什么问题。有没有其他方法我可以用十六进制读取这个文件?

谢谢

我假设您只想以十六进制显示二进制文件的内容。首先,你不需要为此使用 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