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

前端之家收集整理的这篇文章主要介绍了Python – 从二进制文件中读取10位整数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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()

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

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

最佳答案
这是一个在不使用文本字符串转换的情况下执行位操作的生成器.希望它更有效率.

猜你在找的Python相关文章