前言
前两天看到一个短视频,视频的大致内容是这样的。为什么网吧的电脑配置低却一直很流畅,而我们自己家里的电脑用着用着就变慢了呢?我们的电脑能否和网吧的电脑一样一直保持流畅呢?是因为网吧电脑每次重启都会还原,没有任何系统垃圾,而我们家用电脑里面的临时文件却一直存在。那我们自己家里的电脑能否做到和网吧的电脑一样每次启动的时候自动清理临时文件呢?视频里面是告诉我们自己手动打开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自带的定时任务功能就可以了。
首先我们打开资源管理器,右击“计算机”或者是“此电脑”(我的整个电脑显示为此电脑),然后选择“管理”进入计算机管理页面。
在计算机管理界面我们选择“系统工具/任务计划程序”,选择“创建基本任务向导”操作。
在弹出的窗口输入一个任务名称,然后点击“下一步”。
接下来我们可以选择任务每天/每周/每月的定期任务,也可以选择电脑启动时或者用户登录时启动这个脚本,我们希望电脑能够更加流畅,所以我这边选择的是当计算机启动时进行自动清理临时文件。
操作我们直接选择“启动程序”。
然后我们选择脚本的位置。
最后进行确认就好了。
这样我们一个清理临时文件脚本就弄好了,每次开机之后就会自动清理长时间未使用的文件,让你的电脑保持流畅。
脚本获取
今天的实现很简单,如果有需要的话可以公众号后台回复“文件清理”即可。
往期推荐
太实用了!自己动手写软件——GUI编程
python也能玩视频剪辑!moviepy操作记录总结
太好用!图片转文字没有python环境也能运行了!!!
通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~
六十来行python代码完成一个文件分类器
一个人学习——孤单
一群人学习——幸福