簡體   English   中英

Python struct.unpack二進制文件

[英]Python struct.unpack binary file

我正在使用struct.unpack將文件的第11個字節讀取到第21個字節,該字節表示應該讀取“ SNA”的字段。 該字段“填充為BCS-A,在其中左對齊並用BCS空間填充到右邊界”。 由於該字段的長度為10個字節,因此我的格式字符串為“ 10s”。 但是,對於上述輸出,其余7個字節為空格。 為了消除這些空間,我使用strip。 不幸的是,這仍然產生“ SNA \\ x00”。 我究竟做錯了什么?

field = struct.unpack('10s',data[start:stop])
field[0].strip() (since the output of a strut.unpack is a tuple)

您的數據不符合您指定的標准。 請與您的數據供應商聯系並讓他們修復錯誤,或者對您對“空間”的定義更加寬容。 如果要接受該數據,則可以例如執行以下操作:

field[0].strip(' \t\n\x00')

或者,接受程度更有限:

field[0].strip().rstrip('\x00')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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