欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python編程實現(xiàn)清理微信重復緩存文件

 更新時間:2021年11月01日 11:22:26   作者:Python 技術  
這篇文章主要為大家介紹了使用python編程來實現(xiàn)清理微信重復緩存文件的示例代碼過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助

文 | 某某白米飯

來源:Python 技術「ID: pythonall」

微信和 QQ 都有一個存放緩存文件的文件夾,微信在設置 --> 文件管理,QQ 在系統(tǒng)設置 --> 基本設置 --> 文件管理 --> 打卡個人文件中找到它,平時大家對這個文件夾關注度不高,這個文件夾慢慢的,偷偷的就占用了好幾十個 G 的磁盤空間。下面就用 Python 寫個刪除重復文件的腳本清理這些空間。

glob 模塊

glob 模塊非常簡單,就是用來查找文件和文件夾。查找文件只用到三個匹配符:"*", "?", "[]"。

通配符 功能

*:匹配0或多個字符

**:匹配所有文件,目錄,子目錄和子目錄里面的文件

?:匹配一個字符,這里與正則表達式? (正則?匹配前面表達式0次或者1次)

[]:匹配指定范圍內的字符,如: [1-9]匹配1至9內的字符

[!]:匹配不在指定范圍內的字符

glob方法

這個方法返回所有匹配的文件路徑列表

# 當前路徑下所有 py 文件
for fname in glob.glob("**/*.py",recursive=True):
    print(fname)
 
# 當前路徑文件 py 下 py 文件
for fname in glob.glob("py/*.py"):
    print(fname)
 
# 單字通配符 ?,當前路徑文件下以 Tem 開頭后有一個字符文件夾
for fname in glob.glob("Tem?"):
    print(fname)
 
# 范圍通配符[],當前路徑文件下以 Tem 開頭后一個數字符的 py 文件
for fname in glob.glob("Tem[0-9].py"):
    print(fname)
 
# 范圍通配符[!],當前路徑文件下以 Tem 開頭后一個非數字符的 py 文件
for fname in glob.glob("Tem[!0-9].py"):
    print(fname)
 
windowns下
file = glob.glob(r'D:\logs\*\*')

zlib.crc32

CRC32 算法概述 CRC 全稱 Cyclic Redundancy Check,又叫循環(huán)冗余校驗。和 md5 碼一樣都是 hash 的。當兩個文件內容的 CRC32 相同的時候,這個文件也就是相同的。反之,兩個文件就是不同的文件。

def crc32(file_path):
    with open(file_path, 'rb') as fh:
        hash = 0
        while True:
            s = fh.read(65536)
            if not s:
                break
            hash = zlib.crc32(s, hash)
        return "%08X" % (hash & 0xFFFFFFFF)

去重復

看到這里,想必都明白如何去重復文件了:1. 用 glob.glob 掃描所有文件,2. 把文件的 crc32 值放入字典中,3. 找到字典中已經存在的 crc32 值的key,刪除當前文件。

import os
import zlib
import glob
def scanning_floder(glob_path):
    crc32Dict = {}
    for fname in glob.glob(glob_path, recursive=True):
        if os.path.isfile(fname):
            crc = crc32(fname)
            if crc in crc32Dict:
                print('已經存在文件:' + crc32Dict.get(crc))
                print('重復文件:' + fname)
                print('刪除文件:' + fname)
                os.remove(fname)
                print('')
            else:
                crc32Dict[crc] = fname
def crc32(file_path):
    with open(file_path, 'rb') as f:
        hash = 0
        while True:
            s = f.read(1024)
            if not s:
                break
            hash = zlib.crc32(s, hash)
        return "%08X" % (hash & 0xFFFFFFFF)
 
scanning_floder(r"C:\Users\xxxx\Documents\WeChat Files\xxxx\FileStorage\**\*")

fab717efc7f78f9fd263b60dfb66398f.png 

總結

本篇介紹了 glob 模塊的用法和 crc32 值的計算,大家學廢了嗎?

更多關于python清理重復緩存文件的資料請關注腳本之家其它相關文章!

相關文章

  • 如何更換python默認編輯器的背景色

    如何更換python默認編輯器的背景色

    在本篇內容里小編給大家整理的是一篇關于如何更換python默認編輯器的背景色的相關內容,有興趣的朋友們可以學習參考下。
    2020-08-08
  • Python Django Cookie 簡單用法解析

    Python Django Cookie 簡單用法解析

    這篇文章主要介紹了Python Django Cookie 簡單用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python實現(xiàn)的多線程http壓力測試代碼

    Python實現(xiàn)的多線程http壓力測試代碼

    這篇文章主要介紹了Python實現(xiàn)的多線程http壓力測試代碼,結合實例形式分析了Python多線程操作的相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • python打印異常信息的兩種實現(xiàn)方式

    python打印異常信息的兩種實現(xiàn)方式

    今天小編就為大家分享一篇python打印異常信息的兩種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖

    Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖

    哆啦A夢系列是陪伴我,乃至陪伴了幾代人成長的故事.50年來,藤子·F·不二雄先生創(chuàng)造了竹蜻蜓,任意門,時光機器等等無數的新奇道具,讓大雄和他的小伙伴們經歷了各種冒險,也經歷了許多充滿戲劇性的啼笑皆非的日常.特意寫了這篇文章,教大家怎么繪制詞云圖,需要的朋友可以參考下
    2021-06-06
  • python爬取youtube視頻的示例代碼

    python爬取youtube視頻的示例代碼

    這篇文章主要介紹了python爬取youtube視頻的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python實現(xiàn)拷貝多個文件到同一目錄的方法

    Python實現(xiàn)拷貝多個文件到同一目錄的方法

    這篇文章主要介紹了Python實現(xiàn)拷貝多個文件到同一目錄的方法,涉及Python針對文件與目錄的遍歷、復制等相關操作技巧,需要的朋友可以參考下
    2016-09-09
  • python pygame入門教程

    python pygame入門教程

    pygame是python的游戲編程模塊,今天我們就來一起簡單的學習如何使用該模塊
    2021-06-06
  • Python用戶推薦系統(tǒng)曼哈頓算法實現(xiàn)完整代碼

    Python用戶推薦系統(tǒng)曼哈頓算法實現(xiàn)完整代碼

    這篇文章主要介紹了Python用戶推薦系統(tǒng)曼哈頓算法實現(xiàn)完整代碼,簡單介紹了曼哈頓距離的定義,然后分享了其Python實現(xiàn)代碼,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • 使用PyTorch將數據從CPU移動到GPU的四個方法

    使用PyTorch將數據從CPU移動到GPU的四個方法

    這篇文章給大家介紹了在 PyTorch 中,將數據從 CPU 移動到 GPU 的幾種方法,使用 .to() 方法,使用 .cuda() 方法,使用 torch.Tensor 構造函數和使用 torch.tensor 構造函數這四個方法,通過代碼示例介紹非常詳細,需要的朋友可以參考下
    2024-01-01

最新評論