从波形文件python

时间:2015-08-18 09:36:11

标签: python byte wave

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

我一直在引用this page和其他几个人来查看Wave文件的完整格式,但是对于某些wave文件,我会遇到一些差异。我希望能够看到十六进制字节,以查看正在发生的差异。

简单地使用open('fname', 'rb')和read,只返回字节作为字符串。使用struct.unpack已经适用于某些wave文件,但是它仅限于打印为字符串,整数或短裤,而且当我使用它时,我无法确切地看到出现了什么问题。有没有其他方法我可以用十六进制读取这个文件?

谢谢

1 个答案:

答案 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