我正在编写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到字节数组?
答案 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
初始化bytearraymetadata = bytearray(b'\xFF'*256)