亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

# 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值來查找重復(fù)文件案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python通過re正則表達式切割中英文的操作

    python通過re正則表達式切割中英文的操作

    這篇文章主要介紹了python通過re正則表達式切割中英文的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python cookie反爬處理的實現(xiàn)

    python cookie反爬處理的實現(xiàn)

    這篇文章主要介紹了python cookie反爬處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Django 表單模型選擇框如何使用分組

    Django 表單模型選擇框如何使用分組

    這篇文章主要介紹了Django 表單模型選擇框如何使用分組,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Python繪圖示例程序中的幾個語法糖果你知道嗎

    Python繪圖示例程序中的幾個語法糖果你知道嗎

    這篇文章主要為大家詳細介紹了Python繪圖示例程序中的幾個語法糖果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python切片操作實例分析

    Python切片操作實例分析

    這篇文章主要介紹了Python切片操作,結(jié)合實例形式較為詳細的分析了Python切片相關(guān)的正向、反向、步長等使用技巧與相關(guān)注意事項,需要的朋友可以參考下
    2018-03-03
  • 淺談Pytorch中的自動求導(dǎo)函數(shù)backward()所需參數(shù)的含義

    淺談Pytorch中的自動求導(dǎo)函數(shù)backward()所需參數(shù)的含義

    今天小編就為大家分享一篇淺談Pytorch中的自動求導(dǎo)函數(shù)backward()所需參數(shù)的含義,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python文件常見操作實例分析【讀寫、遍歷】

    Python文件常見操作實例分析【讀寫、遍歷】

    這篇文章主要介紹了Python文件常見操作,結(jié)合實例形式分析Python針對文件的讀寫、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python解析JSON數(shù)據(jù)的方法簡單例子

    Python解析JSON數(shù)據(jù)的方法簡單例子

    這篇文章主要給大家介紹了關(guān)于Python解析JSON數(shù)據(jù)的方法,解析JSON文件是Python中非常常見的操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • 詳解python中的裝飾器

    詳解python中的裝飾器

    裝飾器是在不改變函數(shù)(當(dāng)然還有其他的)的代碼和調(diào)用方式的前提下,為函數(shù)增加新的功能,這篇文章給大家詳細介紹了python中的裝飾器,感興趣的朋友一起看看吧
    2018-07-07
  • 關(guān)于Flask 視圖介紹

    關(guān)于Flask 視圖介紹

    這篇文章主要分享的是關(guān)于Flask 視圖介紹, Flask 中路由是請求的 url 與處理函數(shù)之間的映射,使用app.route裝飾器將處理函數(shù)和 url 綁定,路由綁定的處理函數(shù)就被成為視圖函數(shù)。下面來看文章的詳細內(nèi)容,需要的朋友也可以參考一下
    2021-11-11

最新評論