一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python實現MD5進行文件去重的示例代碼

python實現MD5進行文件去重的示例代碼

2021-12-12 22:09lainwith Python

工作中偶爾會收到一大堆文件,名稱各不相同,分析文件的時候發現有不少重復的文件,導致工作效率低下,那么,這里就寫了一個python腳本實現文件去重功能,感興趣的就一起來了解一下

前言

工作中偶爾會遇到文件去重的事情,收到一大堆文件,名稱各不相同,分析文件的時候發現有不少重復的文件,導致工作效率低下,那么,這里就寫了一個python腳本實現文件去重功能

工作原理

腳本會檢查你給出的文件路徑下的所有文件,然后計算每個文件的md5值,并將其加入到一個列表中。

  • 如果某文件的md5值不在列表中,就認定其是我們需要的文件,腳本會在桌面新建一個名為“去重結果”的文件夾,并將其復制到里面去。
  • 如果某文件的md5值在列表中,就認定其不是我們需要的文件,不對其做任何處理。
  • 代碼可以直接運行,無需做任何修改(除了安裝可能缺少的庫文件)

代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
import shutil
import hashlib
 
 
# 對文件去重
# 計算每個文件的md5值,據此進行去重
def only_one(test_path):
    md5_list = []
    count = 0
    for current_folder, list_folders, files in os.walk(test_path):
        for file in files:
            file_path = current_folder + '\\' + file  # 獲取每個文件的路徑
            f = open(file_path, 'rb'# 開始計算每個文件的md5值
            md5obj = hashlib.md5()
            md5obj.update(f.read())
            get_hash = md5obj.hexdigest()
            f.close()
            md5_value = str(get_hash).upper()
            # 開始去重
            if md5_value in md5_list:  # 如果這個文件的md5值曾經出現過,就不對它做任何處理
                count += 1
                print('\033[31m[-] 發現重復文件:\033[0m' + str(file))
            else:
                md5_list.append(md5_value)  # 如果這個文件的md5值不存在列表中,就添加進列表中
                shutil.copy(file_path, path1)
    print('\033[31m[-] 共發現重復文件:{}個\033[0m'.format(count))
 
 
if __name__ == '__main__':
    print('\033[4;33m[+] 此腳本會檢查指定路徑下的所有文件,通過計算文件的md5值進行去重\033[0m')
    print('\033[4;33m[+] 去重后的文件會復制到桌面新文件夾中,源文件不會丟失\033[0m')
    path = input('\033[34m[+] 請輸入文件夾地址:\033[0m')
    os.chdir(path)
 
    # path1 用來存放所有的去重結果
    desktop_path = os.path.join(os.path.expanduser("~"), 'desktop'# 獲取桌面路徑
    path1 = os.path.join(desktop_path, '去重結果')
    os.makedirs(path1)
 
    only_one(path)
    print('\033[32m[-] 現有非重復文件共計:{}個\033[0m'.format(len(os.listdir(path1))))

python實現MD5進行文件去重的示例代碼

到此這篇關于python實現md5進行文件去重的示例代碼的文章就介紹到這了,更多相關python md5文件去重內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_44288604/article/details/118599360

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色在线影院| 天天摸天天碰色综合网 | 精品一区二区三区高清免费观看 | 国产成人咱精品视频免费网站 | 五月香婷 | 日日操天天射 | 国产成人免费视频 | 国产精品亚洲一区二区 | 好硬好大好浪夹得好紧h | 欧美免赞性视频 | 欧美1级 | 操bb| tolove第一季动画在线看 | 欧美久久久久久久一区二区三区 | 国产美女做爰免费视频网址 | 2019中文字幕在线视频 | 色久久一个亚洲综合网 | 亚洲国产成人久久午夜 | 亚洲精品资源 | 精品乱lun小说 | 国产好痛疼轻点好爽的视频 | 久久婷婷五月免费综合色啪 | 国产成人欧美视频在线 | 丝瓜污污 | 日本在线观看www | 欧美日本一道高清二区三区 | 日本一区二区三区国产 | 免费观看国产大片资源视频 | 亚洲视频1区 | 草莓香蕉榴莲丝瓜秋葵绿巨人在线看 | 午夜国产精品影院在线观看 | 夫妇野外交换激情 | 美女禁区视频免费观看精选 | 任你操视频在线观看 | 欧美一区二区三区综合色视频 | 美女脱一净二净不带胸罩 | 天天舔天天干天天操 | 亚洲乱亚洲乱妇41p国产成人 | 日日精品| 国产日韩高清一区二区三区 | 美女用手扒自己下部 |