2011-12-25 107 views
2

在python中,給定一個非常大的文件(〜700MB),我怎樣才能從該文件的最後4096kb創建一個md5哈希?在Python中,從文件的最後4KB創建md5哈希

+0

我會這樣說的:http://bytes.com/topic/python/answers/ 37186​​-md5-large-files它應該對你有所幫助 – JoshStrange 2011-12-25 21:34:37

+0

正是我在尋找的東西。謝謝。 – ensnare 2011-12-25 21:38:08

+0

沒問題,我承認我對你的帖子很感興趣,我從來沒有考慮過只有md5'ing文件的一部分,但從我讀的線程中讀取/正在讀取它可能對md5的第一個(或因爲有些文件會有類似的「標題」和「頁腳」。我相信這取決於你正在處理的文件類型是關於第一個X還是最後一個X位通常是唯一的。 – JoshStrange 2011-12-25 21:41:19

回答

9

您可以使用seek將文件指針移動到文件的末尾,並hashlib爲MD5:

import hashlib 
with open('really-large-file', 'rb') as f: 
    f.seek(- 4096 * 1024, 2) 
    print (hashlib.md5(f.read()).hexdigest()) 
+2

擊敗我,+1。 – 2011-12-25 21:35:33

+2

我也是,該死的:) – Xion 2011-12-25 21:36:59

+0

+1給大家!除了問題。 – 2011-12-25 21:46:32