首页 > 解决方案 > 如何使用字节数组将位数组写入文件

问题描述

我有一个 int 值数组,范围从 0 到 1。即[0,1,1,0,0,1,0,0,1...]。如何使用 bytearray 将其写入文件,其中每个字节包含数组中的 8 个元素(8 位)。|和字节标题只是例如:

输出:

| byte 1 | byte 2 | etc...
|01100100|1...    |

011001001...

标签: python

解决方案


这里有一个过度设计的解决方案,仅当列表的元素数量是 8 的倍数时才有效

l = [0,1,1,0,1,1,0,0,
     1,0,1,0,1,1,1,0,
     0,1,0,1,0,1,0,1,
     0,0,1,1,0,0,0,0]

for n in range(len(l)//8):
    print('| byte ', n+1, ' ', sep='', end='')

print('|')

for byte in zip(*[iter(l)]*8):
    print('|', *byte, sep='', end='')

print('|')

出去:

| byte 1 | byte 2 | byte 3 | byte 4 |
|01101100|10101110|01010101|00110000|

推荐阅读