Python幫你解決手機(jī)qq微信內(nèi)存占用太多問(wèn)題
導(dǎo)語(yǔ):
哈嘍,哈嘍~大家有沒(méi)有遇到過(guò)這種情況,手機(jī)用著用著沒(méi)有內(nèi)存了,一到設(shè)置里面一看。

微信和 QQ 10G!
啊這。。。。。就離譜!好說(shuō),好說(shuō),設(shè)置中都有一個(gè)清除數(shù)據(jù)的功能,一鍵下去內(nèi)存暫時(shí)都回來(lái)了,但是寶,你確定你微信和QQ中的信息都沒(méi)用嗎?

?下面能小編就用 Python 寫(xiě)個(gè)刪除重復(fù)文件的腳本清理這些微信和QQ空間。確保在清除內(nèi)存的時(shí)候,你的重要信息還在。

正文:
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 開(kāi)頭后有一個(gè)字符文件夾
for fname in glob.glob("Tem?"):
print(fname)
# 范圍通配符[],當(dāng)前路徑文件下以 Tem 開(kāi)頭后一個(gè)數(shù)字符的 py 文件
for fname in glob.glob("Tem[0-9].py"):
print(fname)
# 范圍通配符[!],當(dāng)前路徑文件下以 Tem 開(kāi)頭后一個(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\**\*")

總結(jié)
本篇介紹了 glob 模塊的用法和 crc32 值的計(jì)算,大家學(xué)廢了嗎
到此這篇關(guān)于Python幫你解決手機(jī)qq微信內(nèi)存占用太多問(wèn)題的文章就介紹到這了,更多相關(guān)Python qq微信內(nèi)存占用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)希爾排序算法的原理與用法實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)希爾排序算法,簡(jiǎn)單講述了希爾排序的原理并結(jié)合具體實(shí)例形式分析了Python希爾排序的具體實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下2017-11-11
Python入門(mén)教程(三十四)Python的文件處理
這篇文章主要介紹了Python入門(mén)教程(三十四)Python的文件處理,在Python中處理文件的主要是open()函數(shù),接下來(lái)我們就來(lái)一起看看open()函數(shù)的用法吧,需要的朋友可以參考下2023-05-05
Python基于checksum計(jì)算文件是否相同的方法
這篇文章主要介紹了Python基于checksum計(jì)算文件是否相同的方法,涉及Python針對(duì)二進(jìn)制文件的讀取與判定技巧,需要的朋友可以參考下2015-07-07
python實(shí)現(xiàn)數(shù)組平移K位問(wèn)題
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)組平移K位問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
從零開(kāi)始學(xué)Python第八周:詳解網(wǎng)絡(luò)編程基礎(chǔ)(socket)
本篇文章主要介紹了從零開(kāi)始學(xué)Python第八周:詳解網(wǎng)絡(luò)編程基礎(chǔ)(socket) ,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12
Python機(jī)器學(xué)習(xí)之手寫(xiě)KNN算法預(yù)測(cè)城市空氣質(zhì)量
KNN(K-Nearest Neighbor)最鄰近分類算法是數(shù)據(jù)挖掘分類(classification)技術(shù)中常用算法之一,本文將介紹如何通過(guò)KNN算法實(shí)現(xiàn)城市空氣質(zhì)量的預(yù)測(cè),感興趣的同學(xué)可以了解一下2021-12-12
從零開(kāi)始的TensorFlow+VScode開(kāi)發(fā)環(huán)境搭建的步驟(圖文)
這篇文章主要介紹了從零開(kāi)始的TensorFlow+VScode開(kāi)發(fā)環(huán)境搭建的步驟(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Python實(shí)現(xiàn)生成指定大小文件的示例詳解
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)生成指定大小文件,例如txt/圖片/視頻/csv等,文中的示例代碼講解詳細(xì),需要的可以參考下2023-08-08
python數(shù)據(jù)類型可變不可變知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給各位整理的是關(guān)于python數(shù)據(jù)類型可變不可變知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。2020-03-03

