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

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

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

文 | 某某白米飯

來(lái)源:Python 技術(shù)「ID: pythonall」

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

glob 模塊

glob 模塊非常簡(jiǎn)單,就是用來(lái)查找文件和文件夾。查找文件只用到三個(gè)匹配符:"*", "?", "[]"。

通配符 功能

*:匹配0或多個(gè)字符

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

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

[]:匹配指定范圍內(nèi)的字符,如: [1-9]匹配1至9內(nèi)的字符

[!]:匹配不在指定范圍內(nèi)的字符

glob方法

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

# 當(dāng)前路徑下所有 py 文件
for fname in glob.glob("**/*.py",recursive=True):
    print(fname)
 
# 當(dāng)前路徑文件 py 下 py 文件
for fname in glob.glob("py/*.py"):
    print(fname)
 
# 單字通配符 ?,當(dāng)前路徑文件下以 Tem 開頭后有一個(gè)字符文件夾
for fname in glob.glob("Tem?"):
    print(fname)
 
# 范圍通配符[],當(dāng)前路徑文件下以 Tem 開頭后一個(gè)數(shù)字符的 py 文件
for fname in glob.glob("Tem[0-9].py"):
    print(fname)
 
# 范圍通配符[!],當(dāng)前路徑文件下以 Tem 開頭后一個(gè)非數(shù)字符的 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)冗余校驗(yàn)。和 md5 碼一樣都是 hash 的。當(dāng)兩個(gè)文件內(nèi)容的 CRC32 相同的時(shí)候,這個(gè)文件也就是相同的。反之,兩個(gè)文件就是不同的文件。

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)

去重復(fù)

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

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('已經(jīng)存在文件:' + crc32Dict.get(crc))
                print('重復(fù)文件:' + 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 

總結(jié)

本篇介紹了 glob 模塊的用法和 crc32 值的計(jì)算,大家學(xué)廢了嗎?

更多關(guān)于python清理重復(fù)緩存文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • GPU狀態(tài)監(jiān)測(cè)?nvidia-smi?命令的用法詳解

    GPU狀態(tài)監(jiān)測(cè)?nvidia-smi?命令的用法詳解

    這篇文章主要介紹了GPU狀態(tài)監(jiān)測(cè)?nvidia-smi?命令的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python3中在Anaconda環(huán)境下安裝basemap包

    Python3中在Anaconda環(huán)境下安裝basemap包

    今天小編就為大家分享一篇關(guān)于Python3中在Anaconda環(huán)境下安裝basemap包的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Python循環(huán)語(yǔ)句For?Range用法示例詳解

    Python循環(huán)語(yǔ)句For?Range用法示例詳解

    這篇文章主要為大家介紹了Python循環(huán)語(yǔ)句For?Range用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 解決yum對(duì)python依賴版本問(wèn)題

    解決yum對(duì)python依賴版本問(wèn)題

    這篇文章主要介紹了解決yum對(duì)python依賴版本問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 快速解釋如何使用pandas的inplace參數(shù)的使用

    快速解釋如何使用pandas的inplace參數(shù)的使用

    這篇文章主要介紹了快速解釋如何使用pandas的inplace參數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python當(dāng)中的array數(shù)組對(duì)象實(shí)例詳解

    Python當(dāng)中的array數(shù)組對(duì)象實(shí)例詳解

    這篇文章主要介紹了Python當(dāng)中的array數(shù)組對(duì)象,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • Matplotlib?3D?繪制小紅花原理

    Matplotlib?3D?繪制小紅花原理

    這篇文章主要介紹了Matplotlib?3D?繪制小紅花原理,小編上一篇文章一家介紹了繪制小紅化,本篇博文主要介紹一下3D小紅花的繪制原理,看過(guò)上篇博文的朋友可以參考一下
    2022-02-02
  • Python Sympy計(jì)算梯度、散度和旋度的實(shí)例

    Python Sympy計(jì)算梯度、散度和旋度的實(shí)例

    今天小編就為大家分享一篇Python Sympy計(jì)算梯度、散度和旋度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 詳細(xì)解讀Python中的json操作

    詳細(xì)解讀Python中的json操作

    json操作是最為基本的、最為常用的,Python自帶的json模塊就可以滿足大部分應(yīng)用場(chǎng)景,而且使用起來(lái)極為簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于Python中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 使用Python通過(guò)win32 COM實(shí)現(xiàn)Word文檔的寫入與保存方法

    使用Python通過(guò)win32 COM實(shí)現(xiàn)Word文檔的寫入與保存方法

    今天小編就為大家分享一篇使用Python通過(guò)win32 COM實(shí)現(xiàn)Word文檔的寫入與保存方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

通州区| 安康市| 武功县| 右玉县| 门头沟区| 博乐市| 罗江县| 正镶白旗| 华宁县| 铁力市| 沙洋县| 东乡族自治县| 大田县| 隆安县| 和田县| 若羌县| 青冈县| 莆田市| 新蔡县| 瓮安县| 东源县| 泗水县| 醴陵市| 永和县| 赞皇县| 改则县| 彰化市| 曲麻莱县| 黄平县| 松滋市| 北辰区| 蛟河市| 聂拉木县| 信宜市| 家居| 平昌县| 信阳市| 阿拉善盟| 舟曲县| 遵化市| 麻城市|