用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)
用Python自動(dòng)清理系統(tǒng)垃圾,再也不用360安全衛(wèi)士了
在Windows在安裝和使用過(guò)程中都會(huì)產(chǎn)生相當(dāng)多的垃圾文件,包括臨時(shí)文件(如:.tmp、._mp)日志文件(.log)、臨時(shí)幫助文件(.gid)、磁盤檢查文件(.chk)、臨時(shí)備份文件(如:.old、*.bak)以及其他臨時(shí)文件。特別是如果一段時(shí)間不清理IE的臨時(shí)文件夾“Temporary Internet Files”,其中的緩存文件有時(shí)會(huì)占用上百M(fèi)B的磁盤空間。這些LJ文件不僅僅浪費(fèi)了寶貴的磁盤空間,嚴(yán)重時(shí)還會(huì)使系統(tǒng)運(yùn)行慢如蝸牛。
清理電腦垃圾最常用的是360安全衛(wèi)士,看著清理完成,釋放了N個(gè)GB的空間,別提多舒適了。 但是作為Pythoneer自然要玩點(diǎn)不一樣的,我向大家介紹一種利用任務(wù)計(jì)劃執(zhí)行py腳本實(shí)現(xiàn)自動(dòng)清理電腦垃圾的方法,感興趣的同學(xué)可以試試。
同學(xué)們不要太較真哈,本文介紹的方法肯定不能跟360媲美,很早之前網(wǎng)上有個(gè)清除垃圾的.bat文件也能清理電腦垃圾文件。
本文主要目的是換一種姿勢(shì)學(xué)習(xí)Python的os模塊。
一、清理目標(biāo)
系統(tǒng)盤 %system% 下文件類型:
【臨時(shí)文件(*.tmp)】 【臨時(shí)文件(*._mp)】 【日志文件(*.log)】 【臨時(shí)幫助文件(*.gid)】 【磁盤檢查文件(*.chk)】 【臨時(shí)備份文件(*.old)】 【Excel備份文件(*.xlk)】 【臨時(shí)備份文件(*.bak)】
用戶目錄 %userprofile% 下文件夾
【COOKIE】 cookies\*.* 【文件使用記錄】 recent\*.* 【IE臨時(shí)文件】 Temporary Internet Files\*.* 【臨時(shí)文件文件夾】 Temp\*.*.
Windows 目錄 %windir% 下文件夾
【預(yù)讀取數(shù)據(jù)文件夾】 prefetch\*.* 【臨時(shí)文件】 temp\*.*
Python os
Python os 模塊提供了非常豐富的方法用來(lái)處理文件和目錄,它會(huì)自適應(yīng)于不同的操作系統(tǒng)平臺(tái),根據(jù)不同的平臺(tái)進(jìn)行相應(yīng)的操作,在python編程時(shí),經(jīng)常和文件、目錄打交道,這時(shí)就離不了os模塊。
具體就不過(guò)多介紹,大家可以看一下官方文檔,也沒(méi)必要細(xì)究,用到哪個(gè)知道怎么查就行了。
https://docs.python.org/zh-cn/3/library/os.html
Python腳本
造輪子不如站在巨人的肩膀上,發(fā)現(xiàn)已經(jīng)有博主寫(xiě)過(guò)了,不過(guò)是用Python2編寫(xiě)的,print的地方改一下就行了。
import os del_extension = { '.tmp': '臨時(shí)文件', '._mp': '臨時(shí)文件_mp', '.log': '日志文件', '.gid': '臨時(shí)幫助文件', '.chk': '磁盤檢查文件', '.old': '臨時(shí)備份文件', '.xlk': 'Excel備份文件', '.bak': '臨時(shí)備份文件bak' } del_userprofile = ['cookies', 'recent', 'Temporary Internet Files', 'Temp'] del_windir = ['prefetch', 'temp'] SYS_DRIVE = os.environ['systemdrive'] + '\\' USER_PROFILE = os.environ['userprofile'] WIN_DIR = os.environ['windir'] def del_dir_or_file(root): try: if os.path.isfile(root): os.remove(root) print ("file",root,"removed") elif os.path.isdir(root): os.rmdir(root) print("dir",root,"removed") except WindowsError: print("failure",root,"can't remove") def formatSize(b): try: kb = b // 1024 except: print("傳入字節(jié)格式不對(duì)") return "Error" if kb > 1024: M = kb // 1024 if M > 1024: G = M // 1024 return "%dG" % G else: return "%dM" % M else: return "%dkb" % kb class DiskClean(object): def __init__(self): self.del_info = {} self.del_file_paths = [] self.total_size = 0 for i,j in del_extension.items(): self.del_info[i] = dict(name = j,count = 0 ) def scanf(self): for roots,dirs,files in os.walk(USER_PROFILE): for files_item in files: file_extension = os.path.splitext(files_item)[1] if file_extension in self.del_info: file_full_path = os.path.join(roots,files_item) self.del_file_paths.append(file_full_path) self.del_info[file_extension]['count'] += 1 self.total_size += os.path.getsize(file_full_path) def show(self): re = formatSize(self.total_size) for i in self.del_info: print(self.del_info[i]["name"],"共計(jì)",self.del_info[i]["count"],"個(gè)") return re def delete_files(self): for i in self.del_file_paths: print(i) del_dir_or_file(i) if __name__ == "__main__": print("初始化清理垃圾程序") cleaner = DiskClean() print("開(kāi)始掃描垃圾文件請(qǐng)耐心等待\n") cleaner.scanf() print("掃描成功,結(jié)果如下") re = cleaner.show() cleaner.delete_files()
調(diào)通之后另存為kill360.py,保存到python的工作目錄,不知道工作目錄可以運(yùn)行os.getcwd()查看。
另外還需要確保python的安裝目錄已添加到path系統(tǒng)變量中,方法:在電腦中,右鍵打開(kāi) 我的電腦(此電腦)\屬性\高級(jí)系統(tǒng)設(shè)置\環(huán)境變量
cmd打開(kāi)命令行輸入 python 命令,如下圖即成功:
然后新建一個(gè)kill360.bat文件,輸入一下內(nèi)容:
python clean.py
將其和.py文件一起放到工作目錄下
然后打開(kāi)任務(wù)計(jì)劃程序
創(chuàng)建任務(wù)及配置過(guò)程
然后,就高枕無(wú)憂了。
到此這篇關(guān)于用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python自動(dòng)清理系統(tǒng)垃圾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)感知機(jī)(PLA)算法
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)感知機(jī)(PLA)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Python合并字典鍵值并去除重復(fù)元素的實(shí)例
下面小編就為大家?guī)?lái)一篇Python合并字典鍵值并去除重復(fù)元素的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫(huà)的案例詳解
這篇文章主要介紹了Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫(huà)的案例,文章通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2023-11-11Python基于datetime或time模塊分別獲取當(dāng)前時(shí)間戳的方法實(shí)例
今天小編就為大家分享一篇關(guān)于Python基于datetime或time模塊分別獲取當(dāng)前時(shí)間戳的方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02python之Socket網(wǎng)絡(luò)編程詳解
這篇文章主要為大家詳細(xì)介紹了python之Socket網(wǎng)絡(luò)編程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Django url,從一個(gè)頁(yè)面調(diào)到另個(gè)頁(yè)面的方法
今天小編就為大家分享一篇Django url,從一個(gè)頁(yè)面調(diào)到另個(gè)頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08