成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Python查找目錄中的重復文件

melody_lql / 775人閱讀

摘要:處理重復文件最后一步非常簡單,把上一步建立的字典做一個簡單的過濾就能找到重復文件。

是這樣的,電腦上的堆積的照片有點多,而且重復的照片被放在了不同的目錄,占用的空間越來越大,數量也多得已經不太適合人工分辨整理,寫個Python腳本來處理吧。

文件的唯一標識 - MD5

假如你要處理的重復文件有不同的文件名,最簡單的辦法就是通過MD5來確定兩個文件是不是一樣的。

def md5sum(filename, blocksize=65536):
    hash = hashlib.md5()
    with open(filename, "rb") as f:
        for block in iter(lambda: f.read(blocksize), b""):
            hash.update(block)
    return hash.hexdigest()

這個方法可以快速獲得一個文件的MD5值,blocksize 可以根據文件大小和CPU性能調整,一般選擇的值約等于文件的平均大小。

保存所有文件標識和路徑

接下來遍歷所有文件,使用MD5作為key,路徑作為value,保存起來。

dup = {}

def build_hash_dict(dir_path, pattern="*.jpg"):
    
    def save(file):
        hash = md5sum(file)
        if hash not in dup.keys():
            dup[hash] = [file]
        else:
            dup[hash].append(file)

    p = Path(dir_path)
    for item in p.glob("**/" + pattern):
        save(str(item))
處理重復文件

最后一步非常簡單,把上一步建立的字典做一個簡單的過濾就能找到重復文件。

def get_duplicate():
    return {k: v for k, v in dup.items() if len(v) > 1}

for hash, files in get_duplicate().items():
    print("{}: {}".format(hash, files))

接下來你可以根據自己的需要刪除或者保留某個路徑下的文件,本文到此為止。

完整的腳本代碼: https://gist.github.com/tobyq...
關于作者:

Toby Qin, Python 技術愛好者,目前從事測試開發(fā)相關工作,轉載請注明原文出處。

歡迎關注我的博客 https://betacat.online,你可以到我的公眾號中去當吃瓜群眾。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/44663.html

相關文章

  • Python 查找重復文件升級版 - photodup

    摘要:之前寫了一個簡化版的使用查找目錄中的重復文件,現在升級了一下,我們來提供一個友好的網頁界面。掃描結束后,啟動服務即可。順利的話用瀏覽器打開就可以看到一個友好的網頁,可以通過文件或者文件名來清理重復文件,可以預覽圖片文件。 之前寫了一個簡化版的使用Python查找目錄中的重復文件,現在升級了一下,我們來提供一個友好的網頁界面。 思路 上一個版本我們非常簡單粗暴地將所有文件的hash掃描后...

    bingo 評論0 收藏0
  • 最終篇:簡潔易懂,初學者挑戰(zhàn)學習Python編程30天 (五)

    摘要:和是最受歡迎的。虛擬環(huán)境將允許將項目依賴項與本地機器依賴項隔離開來。文件將是項目中的主文件。運行后,檢查本地主機。在中創(chuàng)建一個名為的文件夾,并創(chuàng)建一個名為的文件夾。部署創(chuàng)建帳戶為前端和全棧應用程序提供免費部署服務。 ...

    1fe1se 評論0 收藏0
  • Atom飛行手冊翻譯: 2.13 基本的自定義

    摘要:基本的自定義在我們感受到中所有東西的便利之后,讓我們看看如何改進它。不像的選擇器,的鍵在每個對象中只能重復一次。語言特定的設置會覆蓋全局域的任何設置。作于域的名稱顯示在設置視圖中的每個語言的包中。 基本的自定義 在我們感受到Atom中所有東西的便利之后,讓我們看看如何改進它。可能有一些快捷鍵你經常使用但是感覺很別扭,或者一些顏色不是十分適合你。Atom具有驚人的靈活性,所以讓我們對它...

    opengps 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<