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

Python實(shí)現(xiàn)檢測(cè)文件的MD5值來查找重復(fù)文件案例

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

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

# 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]

補(bǔ)充知識(shí):python一句話校驗(yàn)文件哈希值

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實(shí)現(xiàn)檢測(cè)文件的MD5值來查找重復(fù)文件案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

    詳解Django中的unittest及應(yīng)用

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

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

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

    Python考拉茲猜想輸出序列代碼實(shí)踐

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

    Python編程基礎(chǔ)之字典

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

    python讀寫ini配置文件方法實(shí)例分析

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

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

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

    Python實(shí)現(xiàn)兩個(gè)list對(duì)應(yīng)元素相減操作示例

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

    PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程

    Pycharm可以與服務(wù)器建立連接,把相應(yīng)的項(xiàng)目同步到服務(wù)器上,下面這篇文章主要給大家介紹了關(guān)于PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12

最新評(píng)論

吉隆县| 鸡东县| 保康县| 电白县| 浮山县| 恭城| 西林县| 双鸭山市| 永川市| 秭归县| 大埔区| 沙湾县| 仁怀市| 阿拉尔市| 屏边| 灌阳县| 永吉县| 荆门市| 浑源县| 砀山县| 开封县| 尼玛县| 新沂市| 东海县| 凤山市| 苗栗县| 左贡县| 辽阳县| 宁夏| 乌审旗| 卓资县| 青神县| 英吉沙县| 海城市| 乌兰浩特市| 巴里| 西乡县| 双流县| 肇州县| 望奎县| 广南县|