2010-08-16 77 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

相關問題