当前位置: 首页 > 科技观察

Python还你一个纯净无暇的移动硬盘

时间:2023-03-13 07:53:53 科技观察

1。目标场景用过MacOS的朋友应该都遇到过。日常文件操作会在同一目录下生成一些特定的临时文件。通常,文件夹被打包成压缩包或复制到移动硬盘中,其中会包含临时文件。如果是程序源码,在Windows下编译时有时会受到影响。本文的目的是利用Python自动化和Windows服务来删除移动硬盘插入电脑时的这些临时文件。2、编写代码首先,我们需要循环遍历PC机的驱动器,判断是否有可移动磁盘。#循环遍历,判断每个驱动器whileTrue:foritemindisk_partitions():if'removable'initem.opts:driver,opts=item.device,item.opts#删除临时文件passbreakelse:continue#休眠5s,继续遍历sleep(5)如果检测到有可移动磁盘,则遍历文件,删除Mac临时文件。defremove_all_file(filepath,file_name):"""删除MAC临时文件:paramfile_name::return:"""forroot,dirs,filesinos.walk(filepath):fornameinfiles:print(name)ifname.startswith("._")orname==file_name:os.remove(os.path.join(root,name))接下来我们使用pyinstaller将Python文件打包成一个exe可执行文件。#安装pyinstallerpip3installpyinstaller#将py文件打包成exe可执行文件#图标:img.icopyinstaller-F-iimg.icodel_mac_files.py为了保证程序一直在后台运行,我们需要创建一个系统服务来保持后台执行的可执行文件。instsrv.exe和srvany.exe这两个文件可以很方便的创建系统服务。其中,instsrv.exe用于创建和删除服务;srvany.exe用于保证服务能够正常启动。#RegistrationService#instsrv.exe服务名srvany.exec:\instsrv.exedel_mac_tempfilec:\srvany.exe需要注意的是,运行注册服务命令时,需要以管理员权限运行CMD才能执行。注册服务后,还需要通过注册表将服务与可执行程序关联起来。#注册表服务目录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\在注册表中找到上面创建的服务,新建Parameters项,在项中创建两个字符串,分别指向可执行文件和可执行文件的完整目录。最后services.msc命令打开服务管理,找到目标服务,设置允许服务与桌面交互,设置启用服务并设置为自启动。3、结果与结论通过以上注册服务,每次插入移动硬盘后,都会自动遍历移动硬盘上的文件,查找并删除Mac临时文件。