利用Python自动化清除移动硬盘中的Mac临时文件
本文介绍如何使用Python脚本自动检测并清除插入Windows电脑的移动硬盘中的Mac OS临时文件(如._xxx)。通过pyinstaller打包为exe,结合instsrv和srvany创建Windows系统服务,实现插入硬盘即自动清理,解决跨平台文件拷贝时的兼容性问题。
目标场景与解决方案概述
1、目标场景
使用Mac OS系统的用户通常熟悉,在进行日常文件操作时,系统会在同级目录下自动生成特定的隐藏临时文件。
当把文件夹打包成压缩包或拷贝至移动硬盘时,这些临时文件会被一并包含在内。若涉及程序源代码,在Windows环境下编译时,这些文件有时会造成干扰或影响。
本文旨在介绍一种方案:在移动硬盘插入电脑时,利用Python脚本配合Windows服务,自动执行删除这些临时文件的操作。
Python脚本开发与打包
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可执行文件,以便在无需Python环境的情况下运行。
# 安装 pyinstaller
pip3 install pyinstaller
# 把 py 文件打包成 exe 可执行文件
# 图标:img.ico
pyinstaller -F -i img.ico del_mac_files.py
Windows系统服务配置
为确保该清理程序能持续在后台运行,我们需要将其注册为系统服务,使可执行文件能够随系统启动或在后台静默执行。
这里使用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的项。在该项下创建两个字符串值,分别指向可执行文件的路径以及该文件所在的完整目录。

最后,使用services.msc命令打开服务管理控制台,找到目标服务,勾选“允许服务和桌面交互”,并启动该服务,将其启动类型设置为“自动”以实现开机自启。

最终效果与结论
3、结 果 结 论
通过上述配置的系统服务,每次插入移动硬盘时,系统都会自动触发遍历操作,查找并删除移动硬盘中的Mac临时文件。
以上就是利用python清除移动硬盘中的临时文件的详细内容,更多关于python 清除文件的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









