利用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正则表达式介绍
Aug 06 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
python+pygame简单画板实现代码实例
Dec 13 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
浅谈django的render函数的参数问题
Oct 16 Python
如何使用Python自动控制windows桌面
Jul 11 Python
django 消息框架 message使用详解
Jul 22 Python
python程序 创建多线程过程详解
Sep 23 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Django CBV模型源码运行流程详解
Aug 17 Python
Pandas DataFrame求差集的示例代码
Dec 13 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP二维数组去重算法
2016/12/17 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
JavaScript开发时的五个注意事项
2007/12/08 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
浅析JavaScript动画
2015/06/10 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
django最快程序开发流程详解
2019/07/19 Python
导致python中import错误的原因是什么
2020/07/01 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
体育教学随笔感言
2014/02/24 职场文书
医者仁心观后感
2015/06/17 职场文书
运动会800米赞词
2015/07/22 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
如何理解及使用Python闭包
2021/06/01 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP