[英]python error on struct.unpack
我是python的新手,正在嘗試使用像這樣的解壓縮:
data = f.read(4)
AAA=len(data)
BBB=struct.calcsize(cformat)
print AAA
print BBB
value = struct.unpack(cformat, data)
return value[0]
只要AAA == BBB,它就可以正常運行,但有時f.read僅讀取3個字節,然后出現錯誤。 我嘗試讀取的文件中的實際值為26。它會讀取1-221中的所有值,但26會出錯,因為f.read(size)僅讀取三個字節。
假設問題是“我應該如何正確讀取26?”
首先檢查產生f
的open()
的參數。 在Windows下,除非您以二進制模式( f = open(filename, "rb")
)打開文件,否則Python會假定該文件是文本文件。 Windows將文本文件中的字節值26(Ctrl + Z)視為文件結束標記,這是它從CP / M繼承的怪癖。
您已經以文本模式打開了一個二進制文件,並且所使用的操作系統對區別很重要。 嘗試在打開文件時將b
添加到mode參數:
f = open("my_input_file.bin", "rb")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.