Python帮你解决手机qq微信内存占用太多问题


Posted in Python onFebruary 15, 2022

导语:

哈喽,哈喽~大家有没有遇到过这种情况,手机用着用着没有内存了,一到设置里面一看。

微信和 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\**\*")

Python帮你解决手机qq微信内存占用太多问题

总结

本篇介绍了 glob 模块的用法和 crc32 值的计算,大家学废了吗

到此这篇关于Python帮你解决手机qq微信内存占用太多问题的文章就介绍到这了,更多相关Python qq微信内存占用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
python3访问sina首页中文的处理方法
Feb 24 Python
python使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
Python单元测试工具doctest和unittest使用解析
Sep 02 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
Python基于locals返回作用域字典
Oct 17 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
python flappy bird小游戏分步实现流程
Python 居然可以在 Excel 中画画你知道吗
Feb 15 #Python
Python 恐龙跑跑小游戏实现流程
详解Python+OpenCV进行基础的图像操作
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 #Python
python 远程执行命令的详细代码
Feb 15 #Python
python 详解turtle画爱心代码
You might like
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
ThinkPHP路由详解
2015/07/27 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python检测生僻字的实现方法
2016/10/23 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
化妆师职业生涯规划书
2014/02/16 职场文书
教师求职自荐书
2014/06/14 职场文书
北京英文导游词
2015/02/12 职场文书
2015年科室工作总结
2015/04/10 职场文书
龙猫观后感
2015/06/09 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
SpringBoot Http远程调用的方法
2022/08/14 Java/Android