利用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 相关文章推荐
深入理解Python3 内置函数大全
Nov 23 Python
python实现简易云音乐播放器
Jan 04 Python
Python enumerate索引迭代代码解析
Jan 19 Python
在Python中分别打印列表中的每一个元素方法
Nov 07 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
python tkinter控件布局项目实例
Nov 04 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 Python
python 如何执行控制台命令与操作剪切板
May 20 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
在vue项目中使用sass的配置方法
2018/03/20 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python tornado修改log输出方式
2019/11/18 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
介绍一些UNIX常用简单命令
2014/11/11 面试题
新学期开学寄语
2014/01/18 职场文书
大学总结自我鉴定
2014/01/18 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
模特大赛策划方案
2014/05/28 职场文书
交通工程专业推荐信
2014/09/06 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
暑假安全保证书
2015/02/28 职场文书
教师考核鉴定意见
2015/06/05 职场文书
MySQL锁机制
2021/04/05 MySQL
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python