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