返回顶部
首页 > 资讯 > 后端开发 > Python >Python帮你解决手机qq微信内存占用太多问题
  • 433
分享到

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

2024-04-02 19:04:59 433人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录导语:正文:glob 模块glob方法zlib.crc32去重复总结导语: 哈喽,哈喽~大家有没有遇到过这种情况,手机用着用着没有内存了,一到设置里面一看。 微信和 QQ 10

导语:

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

微信和 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微信内存占用太多问题的文章就介绍到这了,更多相关Python qq微信内存占用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

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

本文链接: https://lsjlt.com/news/139300.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作