手机没内存?python帮你有效清除微信,QQ中重复的缓存文件
2022/1/14 7:08:35
本文主要是介绍手机没内存?python帮你有效清除微信,QQ中重复的缓存文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
导语:
哈喽,哈喽~大家有没有遇到过这种情况,手机用着用着没有内存了,一到设置里面一看。
微信和 QQ 10G!
啊这。。。。。就离谱!好说,好说,设置中都有一个清除数据的功能,一键下去内存暂时都回来了,但是宝,你确定你微信和QQ中的信息都没用吗?
下面能小编就用 Python 写个删除重复文件的脚本清理这些微信和QQ空间。确保在清除内存的时候,你的重要信息还在。
正文:
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,又叫循环冗余校验。和 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\**\*")
总结
本篇介绍了 glob 模块的用法和 crc32 值的计算,大家学废了吗?有什么不清楚的地方,欢迎截图私信我,或者点击这行蓝色字体!
这篇关于手机没内存?python帮你有效清除微信,QQ中重复的缓存文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门