加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Python 还你一块纯洁无暇的移动硬盘

发布时间:2019-11-05 00:44:08 所属栏目:优化 来源:星安果
导读:1.目标场景 用过 Mac OS 的朋友应该都遇到过,日常的文件操作会在同级目录下产生一些特定的临时文件。 平常将文件夹打包成压缩包或拷贝文件夹到移动硬盘内,临时文件会包含在里面,如果是程序源代码,在 Windows 系统下编译有时候还会受到影响。 本篇文章

1.目标场景

用过 Mac OS 的朋友应该都遇到过,日常的文件操作会在同级目录下产生一些特定的临时文件。

Python 还你一块纯洁无暇的移动硬盘

平常将文件夹打包成压缩包或拷贝文件夹到移动硬盘内,临时文件会包含在里面,如果是程序源代码,在 Windows 系统下编译有时候还会受到影响。

本篇文章的目的是在移动硬盘插入到电脑的同时,利用 Python 自动化和 Windows 服务 删除掉这些临时文件。

2.编写代码

首先,我们需要循环检测 PC 的驱动器,判断是否存在 可移动的磁盘。

  1. # 循环遍历,对每一个驱动器进行判断 
  2. while True: 
  3.         for item in disk_partitions(): 
  4.             if 'removable' in item.opts: 
  5.                 driver, opts = item.device, item.opts 
  6.                 # 删除临时文件 
  7.                 pass 
  8.                 break 
  9.             else: 
  10.                 continue 
  11.  
  12.         # 休眠5s,继续遍历 
  13.         sleep(5) 

如果检测到存在可移动的磁盘,就遍历文件,删除 Mac 临时文件。

  1. def remove_all_file(filepath, file_name): 
  2.     """ 
  3.     删除 MAC 临时文件 
  4.     :param file_name: 
  5.     :return: 
  6.     """ 
  7.     for root, dirs, files in os.walk(filepath): 
  8.         for name in files: 
  9.             print(name) 
  10.  
  11.             if name.startswith("._") or name == file_name: 
  12.                 os.remove(os.path.join(root, name)) 

接着,我们利用 pyinstaller 将 Python 文件打包成 Exe 可执行文件。

  1. # 安装 pyinstaller  
  2. pip3 install pyinstaller  
  3.  
  4. # 把 py 文件打包成 exe 可执行文件 
  5. # 图标:img.ico 
  6. pyinstaller -F -i img.ico  del_mac_files.py 

为了保证程序一直在后台运行,我们需要创建一个 系统服务,让将可执行文件一直在后台执行。

instsrv.exe 和 srvany.exe 这两个文件可以非常方便的创建系统服务。其中,instsrv.exe 用于创建、删除服务;srvany.exe 用于保障服务能正常启动。

  1. # 注册服务 
  2. # instsrv.exe 服务名 srvany.exe 
  3. c:instsrv.exe del_mac_tempfile c:srvany.exe 

需要注意的是,运行注册服务命令时,需要以管理员权限运行 CMD 来执行。

Python 还你一块纯洁无暇的移动硬盘

注册完服务之后,还需要通过注册表把服务和可执行程序关联起来。

  1. # 注册表服务的目录 
  2. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices  

在注册表中找到上面创建的服务,新建一个 Parameters 的项,在项内再创建两个字符串,分别指向可执行文件和可执行文件的完整目录。

Python 还你一块纯洁无暇的移动硬盘

最后,services.msc 命令打开服务管理,找到目标服务,设置允许服务和桌面交互,设置开启服务并设置为自启。

Python 还你一块纯洁无暇的移动硬盘

3.结果结论

通过以上注册的服务,每次插入移动硬盘,都会自动去遍历移动硬盘盘的文件,查找 Mac 临时文件并删除。

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!