2015-08-18 95 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