利用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通过ssh-powershell监控windows的方法
Jun 02 Python
Python使用minidom读写xml的方法
Jun 03 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
简单了解python中对象的取反运算符
Jul 01 Python
python hough变换检测直线的实现方法
Jul 12 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python SVD压缩图像的实现代码
Nov 05 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 Python
python脚本第一行如何写
Aug 30 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php 图片上传类代码
2009/07/17 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
python中os包的用法
2020/06/01 Python
浅析Python迭代器的高级用法
2020/07/16 Python
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
《我的第一本书》教学反思
2014/02/15 职场文书
校长寄语大全
2014/04/09 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB
pycharm无法安装cv2模块问题
2022/05/20 Python