Python3,25行代码,清理电脑版微信重复缓存,电脑从此健步如飞,建议收藏!!

简介: Python3,25行代码,清理电脑版微信重复缓存,电脑从此健步如飞,建议收藏!!

1、引言


小屌丝:鱼哥,磁盘多少钱?

小鱼:你想要啥样的:拼多多上的, 淘宝上的,京东上的,还是实体店里的?

小屌丝:我就是单纯的想把我的电脑增加点容量~何苦这么难为我??

小鱼:我记得你的电脑,不是刚增加不就,怎么又满了?

小屌丝:说的我那啥似的…我这都是微信缓存占的!

小鱼:说的像真的似的,如果不是微信缓存的原因,咋办?

小屌丝:你先处理完…再说~ ~

小鱼:这…整吧…


2、glob模块



2.1 缓存路径介绍


在介绍glob模块之前,我们先来说一下缓存的路径。


2.1.1电脑端

电脑端路径:

C:\Users\用户名\Documents\WeChat Files\微信名\FileStorage,


这是默认安装,存储的路径地址;

如果自定义安装,那地址另议。

image.png

2.1.2 手机端


手机端存储路径:

内部存储设备→Android→data→com.tecent.mm→MicroMsg→Download


这就拿Android手机举例;


2.2 glob介绍


2.2.1 通配符介绍

image.png

2.2.2 方法介绍


1、当前文件下所有py路径:

#当前文件下所有py路径
for ftname in glob.glob("**/*.py",recursive=True):
    print(f'文件输出结果为{ftname}')


2、当前路径文件tmp下py文件

#当前路径文件tmp下py文件
for ftname in glob.glob("./tmp/*.py"):
    print(f'文件输出结果为{ftname}')


3、单字通配符?,当前路径文件下以file开头后有一个字符的py文件:

#当前路径文件下以file开头后有一个字符的py文件
for ftname in glob.glob("./file?.py"):
    print(f'文件输出结果为{ftname}')


4、范围通配符[],当前路径文件下以file开头后一个数字符的py文件:

#当前路径文件下以file开头后一个数字符的py文件
for ftname in glob.glob("./file[0-9].py"):
    print(f'文件输出结果为{ftname}')

5、范围通配符[],当前路径文件下以file开头后一个非数字符的py文件:

#当前路径文件下以file开头后一个非数字符的py文件
for ftname in glob.glob("./file[!0-9].py"):
    print(f'文件输出结果为{ftname}')


2.2.3 提升效率


小屌丝:鱼哥,你这返回的执行速度不够快啊!

小鱼:也对,鉴于你每天撩妹的信息量巨大,我要使用杀手锏。

鉴于小屌丝这种情况,我们就使用glob模块iglob, 返回iterator执行效率更高,代码如下:


#当前路径文件tmp下py文件,使用iglob,返回迭代器效率更高
for ftname in glob.iglob("./tmp/*.py"):
    print(f'文件输出结果为{ftname}')


2.3 crc32


CRC32 算法概述 CRC 全称 Cyclic Redundancy Check,又叫循环冗余校验。

和 md5 码一样都是 hash 的。

当两个文件内容的 CRC32 相同的时候,这个文件也就是相同的。

反之,两个文件就是不同的文件。

编写代码

# -*- coding: utf-8 -*-
# @Time   : 2021-10-17
# @Author : carl_DJ
def crc32(file_path):
    with open(file_path, 'rb') as fh:
        hash = 0
        while True:
            s = fh.read(1024)
            if not s:
                break
            hash = zlib.crc32(s, hash)
        return "%08X" % (hash & 0xFFFFFFFF)


3、代码实战


写代码之前,我们先捋一下思路,很简单,就三步:


第一步,使用glob进行全盘扫描文件

第二步,扫描的文件的crc32值放入字典中

第三步,删除字典中crc32的值

编写代码


# -*- coding: utf-8 -*-
# @Time   : 2021-10-17
# @Author : carl_DJ
'''
1、使用glob.glob进行全盘文件扫描
2、把文件的crc32值放入字典中
3、删除字典中的crc32的值
'''
import  os
import zlib
import glob
#扫描文件,并删除重复文件
def scan_floder(glob_path):
    #设置一个空字典
    crc32Dict = {}
    #查找当前路径下的文件
    for ftname in glob.glob(glob_path,recursive=True):
        if os.path.isfile(ftname):
          #crc32![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/62798c261fd5411f8905139303702686.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQ2FybF_lpZXnhLY=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
            crc = crc32(ftname)
            if crc in crc32Dict:
                print(f'已经存在的文件:{crc32Dict.get(crc)}')
                print(f'重复文件:{ftname}')
                print(f'删除文件:{ftname}')
                #删除重复的文件
                os.remove(ftname)
            else:
                crc32Dict[crc] = ftname
#把文件的crc32值存入到字典中
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)
if __name__ == '__main__':
    scan_floder(r'C:\Users\用户名\Documents\WeChat Files\微信名称\FileStorage\xxx')


运行结果

image.png

小屌丝:我去~ 可以啊鱼哥。

小鱼:必须的,是不是突然觉得腰不疼腿不酸,CUP运行可起劲了!

小屌丝:鱼哥,还是你懂我~ ~

小鱼:给你一个眼神,自己体会!

其实手机端跟电脑端的清理机制差不多, 只是路径不一样。

所以,手机版的,我就不展示了。

1.手机USB链接电脑,

2.代码中路径输入手机端的路径即可。


目录
相关文章
|
2月前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
60 15
Android 系统缓存扫描与清理方法分析
|
2月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
116 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
2月前
|
Android开发 Swift iOS开发
python 基于电脑蓝牙连接获取手机的实时数据
python 基于电脑蓝牙连接获取手机的实时数据
64 0
|
3月前
|
监控 数据挖掘 Python
🔍解锁Python系统编程新姿势!文件系统操作与I/O管理,让你玩转电脑每一个角落
【9月更文挑战第11天】Python不仅在数据分析和Web开发中表现出色,其系统编程能力同样强大。本文通过实例详细介绍了Python如何高效地进行文件系统操作与I/O管理。利用`os`和`pathlib`模块,你可以轻松遍历、创建、删除和重命名文件及目录。通过示例代码,展示了如何递归遍历目录和高效读写大文件。此外,文章还介绍了使用`watchdog`库进行文件监控及利用`concurrent.futures`模块实现并发I/O操作的方法,帮助你构建更复杂的应用。无论简单读写还是高级操作,Python都能助你轻松管理电脑的每一个角落。
39 1
|
3月前
|
API
电脑上控制所有软件,比如说微信自动发消息,QQ
电脑上控制所有软件,比如说微信自动发消息,QQ
|
3月前
|
Python
python对电脑的操作,获取几核,获取操作系统,获取内存
python对电脑的操作,获取几核,获取操作系统,获取内存
|
4月前
|
SQL 缓存 监控
实时计算 Flink版产品使用问题之怎么手动清理缓存或废弃文件
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
缓存 分布式计算 关系型数据库
数据管理DMS操作报错合集之当进行RDS实例的可用区迁移时,提示“缓存清理”是什么意思
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
106 3