簡體   English   中英

struct.unpack上的python錯誤

[英]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?”

首先檢查產生fopen()的參數。 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM