Python,struct.pack_into:如何将填充字节从00更改为FF?

时间:2013-06-19 13:39:17

标签: python python-3.x struct

我正在编写Python 3.3.2脚本。以下是我的代码片段:

...
text = filename.readlines()
self.metadata = bytearray(256)
...
struct.pack_into('32s', self.metadata, 4, text[0])
...

为文本[0]的内容保留了32个字节。但是,字符串短于32个字节,因此未使用的字节用空字节(0x00)填充,另请参见notes。我想将填充更改为0xFF。有没有一种很好的方法来做到这一点,除了获得我的字符串的实际大小,将其打包到我的bytearray然后将剩余的字节打包为0xFF到字节数组?

2 个答案:

答案 0 :(得分:1)

如何使用ljust方法首先将字符串填充到具有所需0xff字符的32个字节? ljust(width [,fillchar])其中width是填充后的字符串总长度,fillchar是要填充的字符(默认为空格。)

struct.pack_into('32s', self.metadata, 4, text[0].ljust(32, b'\xff'))

答案 1 :(得分:0)

首先用0xFF

初始化bytearray
metadata = bytearray(b'\xFF'*256)