最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)檢測文件的MD5值來查找重復文件案例

 更新時間:2020年03月12日 16:20:46   作者:mighty13  
這篇文章主要介紹了Python實現(xiàn)檢測文件的MD5值來查找重復文件案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

平時學生交上機作業(yè)的時候經(jīng)常有人相互復制,直接改文件名了事,為了能夠簡單的檢測這種作弊行為,想到了檢測文件的MD5值,雖然對于抄襲來說作用不大,但是聊勝于無,以后可以做一個復雜點的。

# coding: utf8

import hashlib
import os
from collections import Counter
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

def get_md5_01(file_path):
  md5 = None
  if os.path.isfile(file_path):
    f = open(file_path,'rb')
    md5_obj = hashlib.md5()
    md5_obj.update(f.read())
    hash_code = md5_obj.hexdigest()
    f.close()
    md5 = str(hash_code).lower()
  return md5

def get_md5_02(file_path):
  f = open(file_path,'rb') 
  md5_obj = hashlib.md5()
  while True:
    d = f.read(8096)
    if not d:
      break
    md5_obj.update(d)
  hash_code = md5_obj.hexdigest()
  f.close()
  md5 = str(hash_code).lower()
  return md5

if __name__ == "__main__":
  output_list=[]
  #input_path=r"e:\xx\新建文件夾"
  #output_path = unicode(input_path , "utf8")
  output_path=os.getcwd()
  g = os.walk(output_path) 
  for path,dir_list,file_list in g: 
    for file_name in file_list:
      output_list.append(os.path.join(path, file_name) )
  md5_list= [get_md5_01(i) for i in output_list]
  Counter_list=Counter(md5_list)
  for i in Counter_list.items():
    if i[1] >1:
      duplicate_list=[ a for a in range(len(md5_list)) if md5_list[a] == i[0]]
      print '-'*50
      print i[0]
      for j in duplicate_list:
        with open('duplicate.log', mode='a+') as f:
          f.write(i[0]+'\t'+output_list[j]+'\n')
        print output_list[j]

補充知識:python一句話校驗文件哈希值

MD5

python -c "import hashlib,sys;print hashlib.md5(open(sys.argv[1],'rb').read()).hexdigest()" 文件名

SHA-1

python -c "import hashlib,sys;print hashlib.sha1(open(sys.argv[1],'rb').read()).hexdigest()" 文件名

SHA-256

python -c "import hashlib,sys;print hashlib.sha256(open(sys.argv[1],'rb').read()).hexdigest()" 文件名

SHA-512

python -c "import hashlib,sys;print hashlib.sha512(open(sys.argv[1],'rb').read()).hexdigest()" 文件名

以上這篇Python實現(xiàn)檢測文件的MD5值來查找重復文件案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python爬蟲爬取新聞資訊案例詳解

    Python爬蟲爬取新聞資訊案例詳解

    這篇文章主要介紹了Python爬蟲爬取新聞資訊案例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python極值整數(shù)的邊界探討分析

    Python極值整數(shù)的邊界探討分析

    這篇文章主要介紹了Python極值整數(shù)的邊界探討分析,閱讀本文來一起領略Python中的極值,看一下Python整數(shù)是否有邊界,有需要的朋友可以借鑒參考下
    2021-09-09
  • 詳解Django中的unittest及應用

    詳解Django中的unittest及應用

    unittest是python的一個單元測試框架,它是用于對一個確定結果和預測結果的一種判斷,這篇文章主要介紹了Django中的unittest及應用,需要的朋友可以參考下
    2021-11-11
  • Python數(shù)據(jù)分析之Numpy庫的使用詳解

    Python數(shù)據(jù)分析之Numpy庫的使用詳解

    NumPy(Numerical Python)是Python的一種開源的數(shù)值計算擴展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表結構要高效的多(該結構也可以用來表示矩陣(matrix)),支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫
    2021-11-11
  • Python考拉茲猜想輸出序列代碼實踐

    Python考拉茲猜想輸出序列代碼實踐

    這篇文章主要介紹了Python考拉茲猜想輸出序列代碼實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python編程基礎之字典

    Python編程基礎之字典

    這篇文章主要為大家介紹了Python的字典,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python讀寫ini配置文件方法實例分析

    python讀寫ini配置文件方法實例分析

    這篇文章主要介紹了python讀寫ini配置文件方法,實例分析了Python針對ini配置文件的相關讀寫技巧,需要的朋友可以參考下
    2015-06-06
  • 使用Python下載Bing圖片(代碼)

    使用Python下載Bing圖片(代碼)

    代碼另存為py文件,運行圖片將自動下載到py文件相同目錄,如果覺得每次運行找文件麻煩,可以新建py文件的快捷方式,程序還會自動給下載的圖片命名
    2013-11-11
  • Python實現(xiàn)兩個list對應元素相減操作示例

    Python實現(xiàn)兩個list對應元素相減操作示例

    這篇文章主要介紹了Python實現(xiàn)兩個list對應元素相減操作,結合具體實例形式分析了list對應元素操作的簡單實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • PyCharm連接遠程服務器的超級詳細教程

    PyCharm連接遠程服務器的超級詳細教程

    Pycharm可以與服務器建立連接,把相應的項目同步到服務器上,下面這篇文章主要給大家介紹了關于PyCharm連接遠程服務器的超級詳細教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-12-12

最新評論

乐清市| 镇安县| 团风县| 和龙市| 垣曲县| 贺州市| 东乡| 临澧县| 扎囊县| 祁连县| 德州市| 石阡县| 开阳县| 钦州市| 三明市| 纳雍县| 铜鼓县| 闽清县| 长乐市| 蒲江县| 华池县| 贺兰县| 山阴县| 镇宁| 巩义市| 昌江| 两当县| 金华市| 资源县| 新晃| 呼玛县| 鹤山市| 鹰潭市| 南江县| 鄂州市| 克什克腾旗| 泸水县| 河北省| 朔州市| 灯塔市| 财经|