1

我正在编写一个 Python 3.3.2 脚本。这是我的代码片段:

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

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

4

2 回答 2

1

首先用 0xFF 初始化字节数组

metadata = bytearray(b'\xFF'*256)
于 2013-06-20T14:07:08.030 回答
1

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

struct.pack_into('32s', self.metadata, 4, text[0].ljust(32, b'\xff'))
于 2013-06-19T13:50:46.777 回答