久久九九热,亚洲国产日产韩国欧美综合,亚洲日本va午夜中文字幕久久,亚洲国产日韩在线人高清

蜻蜓手游網(wǎng),分享真實(shí)精致軟件資源!

微信緩存自動(dòng)清理工具 1.0 Python版

  • 微信緩存自動(dòng)清理工具
  • 大。

    7.3M
  • 時(shí)間:

    2021-06-15 15:49
  • 語(yǔ)言:

    中文
  • 版本:

    1.0 Python版
  • 等級(jí):

    4級(jí)
  • 平臺(tái):

    Windows
  • 類(lèi)別:

    官方版/ 免費(fèi) /其他軟件
  • 官網(wǎng):

    暫無(wú)
  • 廠商:

  • 備案號(hào):

好評(píng):50%
壞評(píng):50%
掃描二維碼下載到手機(jī)
微信緩存自動(dòng)清理工具1.0 Python版截圖0

微信緩存自動(dòng)清理工具介紹

相信很多小伙伴都知道,軟件在使用的過(guò)程中都會(huì)產(chǎn)生緩存數(shù)據(jù)的,而且長(zhǎng)期不清理會(huì)導(dǎo)致占用空間越來(lái)越大,可能影響電腦的運(yùn)行速度,我們常用的微信也是這樣,微信緩存自動(dòng)清理工具采用python語(yǔ)言編寫(xiě),不需要安裝,支持自動(dòng)清理微信所產(chǎn)生的緩存,并且不會(huì)刪除重要數(shù)據(jù)。

微信緩存自動(dòng)清理工具

微信緩存自動(dòng)清理工具特色

自動(dòng)通過(guò)注冊(cè)表、微信配置文件和手動(dòng)輸入判斷企業(yè)微信和微信的緩存目錄,并自動(dòng)清理不重要數(shù)據(jù)

微信緩存自動(dòng)清理工具代碼

import os

import re

from time import sleep

import shutil

import winreg

from pathlib import Path

import configparser

 

# 記錄一下所有垃圾的總大小

total_trash_size = 0

 

def get_reg_dir(software):

    if software == "微信":

        try:

            string = r'SOFTWARE\Tencent\WeChat'

            handle = winreg.OpenKey(winreg.HKEY_CURRENT_USER, string, 0, (winreg.KEY_WOW64_64KEY + winreg.KEY_READ))

            location, _type = winreg.QueryValueEx(handle, "FileSavePath")

            return location

 

        except :

            return False

    elif software == "企業(yè)微信":

        try:

            string = r'SOFTWARE\Tencent\WXWork'

            handle = winreg.OpenKey(winreg.HKEY_CURRENT_USER, string, 0, (winreg.KEY_WOW64_64KEY + winreg.KEY_READ))

            location, _type = winreg.QueryValueEx(handle, "DataLocationPath")

            return location

 

        except :

            return False

 

def get_software_dir(software):

    if software == "微信":

        if os.path.exists('D:/wx_path.ini'):

            try:

                cf = configparser.ConfigParser()

                cf.read('D:/wx_path.ini',encoding='utf-8')

                wx_path = cf.get("weixin","wx_path")

                return Path(wx_path)

            except Exception as e:

                print(e)

                if Path(Path.home() / "Documents" / "WeChat Files").is_file():

                    wx_path = Path(Path.home() / "Documents" / "WeChat Files")

                    return Path(wx_path)

                 

                if os.path.exists(Path.home() /'AppData'/'Roaming'/'Tencent'/'WeChat'/'All Users'/'config'/'3ebffe94.ini'): 

                    try:

                        with open(Path.home() /'AppData'/'Roaming'/'Tencent'/'WeChat'/'All Users'/'config'/'3ebffe94.ini', "r") as f:  # 打開(kāi)文件

                            wx_path = Path(str(f.read())+"/WeChat Files")   # 讀取文件

                        if os.path.exists(wx_path):

                            return wx_path

                    except Exception as e:

                        print(e)

                 

                if os.path.exists(Path.home() /'AppData'/'Roaming'/'Tencent'/'WeChat'/'All Users'/'config'/'b928cd74.ini'):

                    try:

                        with open(Path.home() /'AppData'/'Roaming'/'Tencent'/'WeChat'/'All Users'/'config'/'b928cd74.ini', "r") as f:  # 打開(kāi)文件

                                wx_path = Path(str(f.read())+"/WeChat Files")   # 讀取文件

                        if os.path.exists(wx_path):

                            return wx_path

                    except Exception as e:

                        print(e)

                 

                if get_reg_dir("微信"):

                    return Path(get_reg_dir("微信"))

                wx_path = Path(input("未找到微信緩存目錄!請(qǐng)手動(dòng)輸入:"))

                os.chdir('D:/')

                cf = configparser.ConfigParser()

                cf.add_section("weixin")

                cf.set("weixin","wx_path",str(wx_path))

                with open('D:/wx_path.ini',"a") as f:

                    cf.write(f)

                return Path(str(wx_path))

        else:

            Path('D:/wx_path.ini').touch()

            wx_path = Path(input("未找到微信緩存目錄!請(qǐng)手動(dòng)輸入:"))

            os.chdir('D:/')

            cf = configparser.ConfigParser()

            cf.add_section("weixin")

            cf.set("weixin","wx_path",str(wx_path))

            with open('D:/wx_path.ini',"a") as f:

                cf.write(f)

            return Path(str(wx_path))

 

 

     

    elif software == "企業(yè)微信":

        if os.path.exists('D:/wx_path.ini'):

            try:

                cf = configparser.ConfigParser()

                cf.read('D:/wx_path.ini',encoding='utf-8')

                qywx_path = cf.get("qyweixin","qywx_path")

                return Path(qywx_path)

            except Exception as e:

                print(e)

                if Path(Path.home() / "Documents" / "WXWork").is_file():

                    wkchat_dir = Path(Path.home() / "Documents" / "WXWork")

                    return wkchat_dir

                if get_reg_dir("企業(yè)微信"):

                    return Path(get_reg_dir("企業(yè)微信"))

                qywx_path = Path(input("未找到企業(yè)微信緩存目錄!請(qǐng)手動(dòng)輸入:"))

                os.chdir('D:/')

                cf = configparser.ConfigParser()

                cf.add_section("qyweixin")

                cf.set("qyweixin","qywx_path",str(qywx_path))

                with open('D:/wx_path.ini',"a") as f:

                    cf.write(f)

                return Path(qywx_path)

        else:

            Path('D:/wx_path.ini').touch()

            qywx_path = Path(input("未找到微信緩存目錄!請(qǐng)手動(dòng)輸入:"))

            os.chdir('D:/')

            cf = configparser.ConfigParser()

            cf.add_section("qyweixin")

            cf.set("qyweixin","qywx_path",str(qywx_path))

            with open('D:/wx_path.ini',"a") as f:

                cf.write(f)

            return Path(qywx_path)

 

 

def remove_wxtrash():

    """刪除微信的所有緩存"""

    global total_trash_size

    # 找到微信的存儲(chǔ)目錄

    wechat_dir = get_software_dir("微信")

    print(wechat_dir)

    # 記錄所有垃圾文件和文件夾的路徑,用來(lái)之后進(jìn)行刪除

    trash_list = []

 

    print('開(kāi)始掃描微信的緩存文件...')

    print('=' * 30)

    # All Users 目錄存儲(chǔ)了所有登錄過(guò)的用戶使用過(guò)的頭像

    trash_list.extend(find_trash(Path(os.environ.get('USERPROFILE') +'/AppData/Local/Temp'), title='系統(tǒng)緩存文件'))

    trash_list.extend(find_trash(wechat_dir / "All Users", '*', '已登錄過(guò)用戶的頭像圖片'))

    # Applet 目錄存儲(chǔ)了所有小程序的緩存

    trash_list.extend(find_trash(wechat_dir / "Applet", '*', '公用小程序緩存'))

    # 獲取所有登錄過(guò)的用戶產(chǎn)生的緩存文件

    for d in wechat_dir.iterdir():

        if d.name not in ['Applet', 'All Users']:

            try:

                name = re.split("\\\\",str(d))[-1]

                print(f'{name} 的目錄下,共發(fā)現(xiàn):')

            except :

                pass

            trash_list.extend(find_trash(d / 'Applet', title='小程序緩存',indent=1))

             

            # Attachment,Backup,BackupFiles,CustomEmotions 都是空的

            # Data 不知道干什么用的,但是不大,先不刪了

         

            # FavTemp 不知道是什么,但是應(yīng)該沒(méi)用,可以刪

            trash_list.extend(find_trash(d / 'FavTemp', title='其他緩存',indent=1))

         

            # 表情包文件緩存

            trash_list.extend(find_trash(d / 'CustomEmoV1', title='表情文件緩存'))

             

            trash_list.extend(find_trash(d / 'ResUpdate', title='未知垃圾文件',indent=1))

             

            trash_list.extend(find_trash(d / 'ResUpdateV2', title='其他垃圾文件',indent=1))

             

            # Image, Video, Files 都是空的

            # 其下是以形如 2020-06 的文件夾存儲(chǔ)的各種圖片縮略圖緩存文件

            trash_list.extend(find_trash(d / 'FileStorage' / 'Cache', title='縮略圖文件',indent=1))

            # 又又又一個(gè)表情圖片緩存

            trash_list.extend(find_trash(d / 'FileStorage' / 'CustomEmotion', title='自定義表情文件緩存',indent=1))

            # 下載到本地的文件

            trash_list.extend(find_trash(d / 'FileStorage' / 'File', title='已下載文件',indent=1))

            # 未知緩存文件,在微信運(yùn)行中被占用,無(wú)法刪除

            trash_list.extend(find_trash(d / 'FileStorage' / 'Fav', title='未知文件',indent=1))

            # 圖片文件

            trash_list.extend(find_trash(d / 'FileStorage' / 'Image', title='圖片數(shù)據(jù)文件',indent=1))

            # 視頻文件

            trash_list.extend(find_trash(d / 'FileStorage' / 'Video', title='視頻文件',indent=1))

            # 表情包圖標(biāo)文件

            trash_list.extend(find_trash(d / 'FileStorage' / 'General' / 'Data', title='表情圖標(biāo)文件',indent=1))

            # 高清頭像圖片

            trash_list.extend(find_trash(d / 'FileStorage' / 'General' / 'HDHeadImage', title='高清頭像圖片',indent=1))

            # ResUpdate 里面只有損壞的壓縮包,不知道是干什么用的,但肯定沒(méi)卵用

 

    print('=' * 30)

    print(f'總垃圾大。簕total_trash_size:.3f} MB')

 

    # print('請(qǐng)注意,以上垃圾包含所有下載(點(diǎn)開(kāi))過(guò)的圖片、視頻、文本文件,請(qǐng)謹(jǐn)慎刪除!')

    # user_input = input('是否清除全部垃圾?y(es)/n(o) > ')

    # if user_input.lower() not in ['y', 'yes']:

    #     return

     

    print('開(kāi)始清理垃圾...')

    for p in trash_list:

        if not remove_file_or_folder(p):

            print(p)

            total_trash_size -= get_size(p)

    print(f'本次共清理微信垃圾 {total_trash_size:.3f} MB')

 

 

 

 

 

def remove_wktrash():

    """刪除企業(yè)微信的所有緩存"""

    global total_trash_size

    # 找到微信的存儲(chǔ)目錄

    wkchat_dir = get_software_dir("企業(yè)微信")

    print(wkchat_dir)

    # 記錄所有垃圾文件和文件夾的路徑,用來(lái)之后進(jìn)行刪除

    trash_list = []

 

    print('開(kāi)始掃描企業(yè)微信的緩存文件...')

    print('=' * 30)

    # All Users 目錄存儲(chǔ)了所有登錄過(guò)的用戶使用過(guò)的頭像

     

    for d in wkchat_dir.iterdir():

        try:

            name = re.split("\\\\",str(d))[-1]

            print(f'{name} 的目錄下,共發(fā)現(xiàn):')

        except :

            pass

        trash_list.extend(find_trash(d / "Avator", '*', '已登錄過(guò)用戶的頭像圖片',indent=1))

 

        # Applet 目錄存儲(chǔ)了所有小程序的緩存

        trash_list.extend(find_trash(d / "Cache", '*', '緩存',indent=1))

         

        trash_list.extend(find_trash(d / "Emotion", '*', '表情包',indent=1))

         

        trash_list.extend(find_trash(d / "WeDrive", '*', '網(wǎng)盤(pán)文件',indent=1))

    print('=' * 30)

    print(f'總垃圾大。簕total_trash_size:.3f} MB')

 

    # print('請(qǐng)注意,以上垃圾包含所有下載(點(diǎn)開(kāi))過(guò)的圖片、視頻、文本文件,請(qǐng)謹(jǐn)慎刪除!')

    # user_input = input('是否清除全部垃圾?y(es)/n(o) > ')

    # if user_input.lower() not in ['y', 'yes']:

    #     return

     

    print('開(kāi)始清理垃圾...')

    for p in trash_list:

        if not remove_file_or_folder(p): 

            print(p)

            total_trash_size -= get_size(p)

    print(f'本次共清理企業(yè)微信垃圾 {total_trash_size:.3f} MB')

 

 

 

def find_trash(d: Path, glob='*', title='緩存', indent=0):

    """獲取某個(gè)垃圾文件夾的信息"""

    if not d.exists():

        return []

    global total_trash_size

    total_size = 0

    trash_list = []

    for p in d.glob(glob):

        total_size += get_size(p)

        trash_list.append(p)

    # 如果傳入 title 為空,則不輸出信息,僅記錄垃圾文件的路徑

    if not title:

        return trash_list

    # 開(kāi)頭的縮進(jìn)

    if indent > 0:

        title = '\t' * indent + title

    # 輸出信息

    print(f'{title}:{total_size:.3f} MB')

    total_trash_size += total_size

    return trash_list

 

 

def remove_file_or_folder(p: Path):

    """刪除文件或文件夾"""

    try:

        if p.is_file():

            p.unlink()

        elif p.is_dir():

            shutil.rmtree(p.absolute())

        else:

            # 見(jiàn)鬼去吧

            pass

        return True

    except:

        print(f'無(wú)法刪除 {p.absolute()}')

        return False

 

 

def get_size(p: Path):

    """獲取一個(gè)文件或文件夾的大小"""

    # 如果是文件

    if p.is_file():

        return p.stat().st_size / 1048576  # 以 MB 為單位

    # 如果是文件夾

    elif p.is_dir():

        # 獲取其下所有文件的大小之和

        return sum([get_size(f) for f in p.rglob('*') if f.is_file()])

    # 我不知道除了文件和文件夾以外還有別的什么類(lèi)型,但是如果有,讓它見(jiàn)鬼去吧

    return 0

 

 

if __name__ == "__main__":

    remove_wxtrash()

    sleep(5)

    remove_wktrash()

    sleep(20)

什么是緩存?

緩存指在下載過(guò)程中暫時(shí)存放數(shù)據(jù)的一塊內(nèi)存區(qū)域。緩存能夠有效的避免程序?qū)τ脖P(pán)進(jìn)行頻繁地寫(xiě)操作。是指臨時(shí)文件交換區(qū),手機(jī)把最常用的文件從存儲(chǔ)器里提出來(lái)臨時(shí)放在緩存里,就像把工具和材料搬上工作臺(tái)一樣,這樣會(huì)比用時(shí)現(xiàn)去倉(cāng)庫(kù)取更方便。因?yàn)榫彺嫱褂玫氖荝AM,斷電即掉的非永久儲(chǔ)存,所以在忙完后還是會(huì)把文件送到手機(jī)存儲(chǔ)器里。緩存能夠有效的避免電驢程序?qū)τ脖P(pán)進(jìn)行頻繁地寫(xiě)操作,因?yàn)楫?dāng)你設(shè)置了緩存以后,只有暫存的數(shù)據(jù)達(dá)到指定大小以后才會(huì)被寫(xiě)入硬盤(pán)。

應(yīng)用信息

其他版本

猜你喜歡

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)

    最新合集

    欧洲人妻av| 亚洲国产日韩在线| 人妻少妇精品无码专区| 阿v天堂2020| 久久精选视频| www.heyzo| a天堂最新在线| 午夜国产福利在线播放| 最近中文字幕免费mv| 好好日欧美| 综合色蜜臀| 亚洲一区二区三区四| 日中国女人屄| 中文字暮99| 无码人妻丰满熟妇区五十路百度| 毛片四川少妇贵州人| SM调教视频免费观看| 久久丁香月停| 亚洲永久精品ww47| 日韩射精管理在线观看| 亚洲天堂女| 动漫无码精品| 亚洲精品道| 精品少妇3| 亚洲精品美女在线观看播放| 国产AV毛片一区二区| 久久毛| 欧美亚州日韩色| 精品国产乱子伦一区二区三区| 亚洲激情图蜜桃Av| 久久一品| 在线视频天堂| 先锋音影资源AV| 亚洲视频第四页| 性色AV无码不卡中文字幕| 国产精品视频九九在| 国产精品69丝袜XX| 高清无码在线观看av| 欧美人妻观看一区二区| 国产精品骚淑女| 午夜天堂在线|