用Python自動清理系統垃圾的實現
用Python自動清理系統垃圾,再也不用360安全衛士了
在Windows在安裝和使用過程中都會產生相當多的垃圾文件,包括臨時文件(如:.tmp、._mp)日志文件(.log)、臨時幫助文件(.gid)、磁盤檢查文件(.chk)、臨時備份文件(如:.old、*.bak)以及其他臨時文件。特別是如果一段時間不清理IE的臨時文件夾“Temporary Internet Files”,其中的緩存文件有時會占用上百MB的磁盤空間。這些LJ文件不僅僅浪費了寶貴的磁盤空間,嚴重時還會使系統運行慢如蝸牛。
清理電腦垃圾最常用的是360安全衛士,看著清理完成,釋放了N個GB的空間,別提多舒適了。 但是作為Pythoneer自然要玩點不一樣的,我向大家介紹一種利用任務計劃執行py腳本實現自動清理電腦垃圾的方法,感興趣的同學可以試試。
同學們不要太較真哈,本文介紹的方法肯定不能跟360媲美,很早之前網上有個清除垃圾的.bat文件也能清理電腦垃圾文件。本文主要目的是換一種姿勢學習Python的os模塊。
一、清理目標系統盤 %system% 下文件類型:
【臨時文件(*.tmp)】【臨時文件(*._mp)】【日志文件(*.log)】【臨時幫助文件(*.gid)】【磁盤檢查文件(*.chk)】【臨時備份文件(*.old)】【Excel備份文件(*.xlk)】【臨時備份文件(*.bak)】
用戶目錄 %userprofile% 下文件夾
【COOKIE】 cookies*.*【文件使用記錄】 recent*.*【IE臨時文件】 Temporary Internet Files*.*【臨時文件文件夾】 Temp*.*.
Windows 目錄 %windir% 下文件夾
【預讀取數據文件夾】 prefetch*.*【臨時文件】 temp*.*Python os
Python os 模塊提供了非常豐富的方法用來處理文件和目錄,它會自適應于不同的操作系統平臺,根據不同的平臺進行相應的操作,在python編程時,經常和文件、目錄打交道,這時就離不了os模塊。具體就不過多介紹,大家可以看一下官方文檔,也沒必要細究,用到哪個知道怎么查就行了。
https://docs.python.org/zh-cn/3/library/os.html
Python腳本造輪子不如站在巨人的肩膀上,發現已經有博主寫過了,不過是用Python2編寫的,print的地方改一下就行了。
import osdel_extension = { ’.tmp’: ’臨時文件’, ’._mp’: ’臨時文件_mp’, ’.log’: ’日志文件’, ’.gid’: ’臨時幫助文件’, ’.chk’: ’磁盤檢查文件’, ’.old’: ’臨時備份文件’, ’.xlk’: ’Excel備份文件’, ’.bak’: ’臨時備份文件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('傳入字節格式不對') return 'Error' if kb > 1024: M = kb // 1024 if M > 1024: G = M // 1024 return '%dG' % G else: return '%dM' % M else: return '%dkb' % kbclass 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'],'共計',self.del_info[i]['count'],'個') 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('開始掃描垃圾文件請耐心等待n') cleaner.scanf() print('掃描成功,結果如下') re = cleaner.show() cleaner.delete_files()
調通之后另存為kill360.py,保存到python的工作目錄,不知道工作目錄可以運行os.getcwd()查看。另外還需要確保python的安裝目錄已添加到path系統變量中,方法:在電腦中,右鍵打開 我的電腦(此電腦)屬性高級系統設置環境變量
cmd打開命令行輸入 python 命令,如下圖即成功:
然后新建一個kill360.bat文件,輸入一下內容:
python clean.py
將其和.py文件一起放到工作目錄下
然后打開任務計劃程序
創建任務及配置過程
然后,就高枕無憂了。
到此這篇關于用Python自動清理系統垃圾的實現的文章就介紹到這了,更多相關Python自動清理系統垃圾內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: