言
前兩天看到一個短視頻,視頻的大致內容是這樣的。為什么網吧的電腦配置低卻一直很流暢,而我們自己家里的電腦用著用著就變慢了呢?我們的電腦能否和網吧的電腦一樣一直保持流暢呢?是因為網吧電腦每次重啟都會還原,沒有任何系統垃圾,而我們家用電腦里面的臨時文件卻一直存在。那我們自己家里的電腦能否做到和網吧的電腦一樣每次啟動的時候自動清理臨時文件呢?視頻里面是告訴我們自己手動打開temp文件夾進行全部刪除。
那我就在想,通過手動的方式經常打開temp文件夾進行文件刪除,那不是很麻煩嘛,是不是可以通過python來實現呢,答案當然是可以的。
我先百度了一下Windows的臨時文件,總不能為了驗證一個刪除把不能刪除的文件直接刪除了,導致系統問題就不好了,是吧。百度告訴我在Windows操作系統中,temp文件夾主要分布在下面三個位置。
(1)C:\Windows\Temp,Windows系統的臨時文件夾,但這些文件中有的是安裝信息文件,有的是腳本文件,還有的是.dll文件,如果不清楚文件用途,建議不要隨便刪除;
(2)IE的臨時文件夾,這個我在我的電腦上沒有看到;
(3)C:\Users\Administrator\AppData\Local,這個是用戶賬戶的臨時文件;
既然已經知道了第三類的用戶臨時文件可以隨意刪除,那今天我們就是要實現一個自動清理用戶賬戶臨時文件的功能。我們需要實現一個對固定目錄下所有文件進行文件修改時間對比,如果超過一個月我們都沒有再次打開過這個文件,我們就判斷這個文件實際沒有什么作用,可以直接刪除。
接下來我們就來看看如何通過python實現文件清理功能和如果通過系統自帶的定時工具實現定期自動清理功能。
python實現
首先我們來看看如何通過python實現temp臨時文件夾的清理功能。
文件遍歷、最近訪問日期的獲取和文件刪除操作,都要用到Python的“os”模塊,獲取當前時間要用到“time”模塊。所以我們需要先加載“time”和“os”這兩個模塊:
import time
import os
然后我們需要定義好用戶臨時文件夾的目錄,獲取當前用戶時間,并且計算出一個默認的對比時間。
path="C:\\Users\\Administrator\\AppData\\Local\\Temp" # 用戶臨時文件夾的路徑
time_now=time.time()
old_threshold=time_now - 30 * 24 * 60 * 60 # 當前時間往前推30天時間,作為時間對比的默認參數值
最后我們通過一個for循環,逐個文件進行修改時間與預期時間的對比,發現有超過一個月沒有使用的文件就直接進行刪除。
files=os.listdir(path) # 獲取文件夾下的所有文件
for file_name in files:
file_pathname=os.path.join(path, file_name)
if not os.path.isdir(file_pathname):
access_time=os.stat(file_pathname).st_mtime
if access_time < old_threshold:
os.remove(file_pathname)
print(file_pathname + ' removed')
這樣我們的文件清理功能就實現了。
自動清理的實現
腳本是已經完成了,但是如果每次都需要自己來執行,那也還是很麻煩。我們需要一個能夠自動執行的功能,這個我們直接使用Windows自帶的定時任務功能就可以了。
首先我們打開資源管理器,右擊“計算機”或者是“此電腦”(我的整個電腦顯示為此電腦),然后選擇“管理”進入計算機管理頁面。
在計算機管理界面我們選擇“系統工具/任務計劃程序”,選擇“創建基本任務向導”操作。
?
在彈出的窗口輸入一個任務名稱,然后點擊“下一步”。
?
接下來我們可以選擇任務每天/每周/每月的定期任務,也可以選擇電腦啟動時或者用戶登錄時啟動這個腳本,我們希望電腦能夠更加流暢,所以我這邊選擇的是當計算機啟動時進行自動清理臨時文件。
?
操作我們直接選擇“啟動程序”。
?
然后我們選擇腳本的位置。
?
最后進行確認就好了。
?
這樣我們一個清理臨時文件腳本就弄好了,每次開機之后就會自動清理長時間未使用的文件,讓你的電腦保持流暢。?
一個人學習——孤單
一群人學習——幸福