利用python清除移动硬盘中的临时文件


Posted in Python onOctober 28, 2020

1、目标场景

用过Mac OS的朋友应该都遇到过,日常的文件操作会在同级目录下产生一些特定的临时文件。

平常将文件夹打包成压缩包或拷贝文件夹到移动硬盘内,临时文件会包含在里面,如果是程序源代码,在Windows系统下编译有时候还会受到影响。

本篇文章的目的是在移动硬盘插入到电脑的同时,利用Python自动化和Windows服务删除掉这些临时文件。

2、编写代码

首先,我们需要循环检测PC的驱动器,判断是否存在可移动的磁盘。

# 循环遍历,对每一个驱动器进行判断

while True:

        for item in disk_partitions():

            if 'removable' in item.opts:

                driver, opts = item.device, item.opts

                # 删除临时文件

                pass

                break

            else:

                continue

        # 休眠5s,继续遍历

        sleep(5)

如果检测到存在可移动的磁盘,就遍历文件,删除Mac临时文件。

def remove_all_file(filepath, file_name):

    """

    删除 MAC 临时文件

    :param file_name:

    :return:

    """

    for root, dirs, files in os.walk(filepath):

        for name in files:

            print(name)

            if name.startswith("._") or name == file_name:

                os.remove(os.path.join(root, name))

接着,我们利用pyinstaller将Python文件打包成Exe可执行文件。

# 安装 pyinstaller 

pip3 install pyinstaller 

# 把 py 文件打包成 exe 可执行文件

# 图标:img.ico

pyinstaller -F -i img.ico  del_mac_files.py

为了保证程序一直在后台运行,我们需要创建一个系统服务,让将可执行文件一直在后台执行。

instsrv.exe和srvany.exe这两个文件可以非常方便的创建系统服务。其中,instsrv.exe用于创建、删除服务;srvany.exe用于保障服务能正常启动。

# 注册服务

# instsrv.exe 服务名 

srvany.exec:\instsrv.exe del_mac_tempfile c:\srvany.exe

需要注意的是,运行注册服务命令时,需要以管理员权限运行CMD来执行。

注册完服务之后,还需要通过注册表把服务和可执行程序关联起来。

# 注册表服务的目录

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

在注册表中找到上面创建的服务,新建一个Parameters的项,在项内再创建两个字符串,分别指向可执行文件和可执行文件的完整目录。

利用python清除移动硬盘中的临时文件

最后,services.msc命令打开服务管理,找到目标服务,设置允许服务和桌面交互,设置开启服务并设置为自启。

利用python清除移动硬盘中的临时文件

3、结 果 结 论

通过以上注册的服务,每次插入移动硬盘,都会自动去遍历移动硬盘盘的文件,查找Mac临时文件并删除。

以上就是利用python清除移动硬盘中的临时文件的详细内容,更多关于python 清除文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
python添加菜单图文讲解
Jun 04 Python
用vue.js组件模拟v-model指令实例方法
Jul 05 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
python实现密码强度校验
Mar 18 Python
基于python实现地址和经纬度转换
May 19 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
Python中生成ndarray实例讲解
Feb 22 Python
python实现一个简单RPC框架的示例
Oct 28 #Python
pycharm永久激活超详细教程
Oct 29 #Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 #Python
浅谈Python __init__.py的作用
Oct 28 #Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 #Python
详解Python流程控制语句
Oct 28 #Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 #Python
You might like
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
PHP的自定义模板引擎
2017/03/24 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
vue实现分页加载效果
2019/12/24 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
详解appium+python 启动一个app步骤
2017/12/20 Python
用Python配平化学方程式的方法
2019/07/20 Python
python pycharm的安装及其使用
2019/10/11 Python
常用的10个Python实用小技巧
2020/08/10 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
Europcar比利时:租车
2019/08/26 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
护士实习鉴定范文
2013/12/22 职场文书
小学教师办公室制度
2014/02/03 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书