繁体   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