小编Jea*_*tin的帖子

Python - 从二进制文件中读取10位整数

我有一个包含10位整数流的二进制文件.我想读它并将值存储在列表中.

它使用以下代码,它读取my_file并填充pixels整数值:

file = open("my_file", "rb")

pixels = []
new10bitsByte = ""

try:
    byte = file.read(1)
    while byte:
        bits = bin(ord(byte))[2:].rjust(8, '0')
        for bit in reversed(bits):
            new10bitsByte += bit
            if len(new10bitsByte) == 10:
                pixels.append(int(new10bitsByte[::-1], 2))
                new10bitsByte = ""             
    byte = file.read(1)

finally:
    file.close()
Run Code Online (Sandbox Code Playgroud)

将字节读入位并将其读回"10位"字节似乎并不优雅.有没有更好的方法呢?

使用8位或16位整数,我可以直接使用file.read(size)并将结果转换为int.但是在这里,因为每个值都存储在1.25字节,我需要像file.read(1.25)...

python binary file-io

6
推荐指数
1
解决办法
2447
查看次数

标签 统计

binary ×1

file-io ×1

python ×1