2015-08-18 70 views
0

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

我一直在引用this page和一些其他人看到一个Wave文件的完整格式,但对于一些波形文件我有一些差异。我希望能够看到十六进制字节,以查看发生了什么差异。

只使用open('fname', 'rb')并读取,只返回字节作为字符串。使用struct.unpack已经适用于一些wave文件,但它仅限于打印为字符串,整数或短裤,并且我无法确切地看到当我使用它时会出现什么问题。有没有其他的方法可以在hex中读取这个文件?

感谢

+0

“读十六进制文件” ? – Holt

回答

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 
+0

谢谢你完美的工作! – user2891789