2010-08-16 146 views
1

在Python中,长整数具有无限范围。有没有简单的方法将二进制文件(例如照片)转换为单个长整数?如何将二进制文件转换为长整数?

+0

你能详细说明一下用例吗?如果你指定了Python版本,它也会有很大的帮助。 – Skurmedel 2010-08-16 13:57:39

回答

3

使用bitstring模块,它只是:

bitstring.BitString(filename='your_file').uint 

如果你愿意,你可以使用int财产得到一个有符号整数。

在内部,这是使用struct.unpack来转换字节块,这比每个字节做的更有效。

3

以下是一种方法。

def file_to_number(f): 
    number = 0 
    for line in f: 
     for char in line: 
      number = ord(char) | (number << 8) 
    return number 

最终可能会得到MemoryError

+1

因为它是一个二进制文件,我不确定它是否有意义迭代线条(我不确定它是否有害,但是在这种情况下线条没有意义)。 – 2010-08-16 14:13:27

+0

当然;它只是从文件中半懒惰地读取数据的最简单的方法。如果在f.read_chunks(4096):'有大块的话,那么我会用它。 – habnabit 2010-08-16 14:29:57

相关问题