chunks 函数详解
🧩 myhexdump.py 的分块辅助:把字节按 16 字节切分。
📎 源码在线查看:
myhexdump.py#L159-L178(chunks)
做什么
chunks(seq, n) 把序列按每 n 个一组切分,生成可迭代的块。myhexdump 用它每 16 字节一行。
实现
python
def chunks(seq, size):
return (seq[i:i+size] for i in range(0, len(seq), size))生成器,惰性,省内存。
用例
python
>>> list(chunks(b"abcdef", 2))
[b'ab', b'cd', b'ef']
>>> for c in chunks(data, 16):
... print(c)在 myhexdump 里的角色
python
for chunk in chunks(bytes, 16):
hex_part = " ".join(f"{b:02x}" for b in chunk)
# ...每 16 字节一行 hexdump,靠 chunks 切分。
边界
最后一组可能不足 16 字节,chunks 仍返回剩余部分,myhexdump 的 hex_part 用 :<48 左对齐补空格保持对齐。