掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
1.目標(biāo)場景

創(chuàng)新互聯(lián)公司從2013年開始,先為庫車等服務(wù)建站,庫車等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為庫車企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
用過 Mac OS 的朋友應(yīng)該都遇到過,日常的文件操作會在同級目錄下產(chǎn)生一些特定的臨時(shí)文件。
平常將文件夾打包成壓縮包或拷貝文件夾到移動硬盤內(nèi),臨時(shí)文件會包含在里面,如果是程序源代碼,在 Windows 系統(tǒng)下編譯有時(shí)候還會受到影響。
本篇文章的目的是在移動硬盤插入到電腦的同時(shí),利用 Python 自動化和 Windows 服務(wù) 刪除掉這些臨時(shí)文件。
2.編寫代碼
首先,我們需要循環(huán)檢測 PC 的驅(qū)動器,判斷是否存在 可移動的磁盤。
- # 循環(huán)遍歷,對每一個(gè)驅(qū)動器進(jìn)行判斷
- while True:
- for item in disk_partitions():
- if 'removable' in item.opts:
- driver, opts = item.device, item.opts
- # 刪除臨時(shí)文件
- pass
- break
- else:
- continue
- # 休眠5s,繼續(xù)遍歷
- sleep(5)
如果檢測到存在可移動的磁盤,就遍歷文件,刪除 Mac 臨時(shí)文件。
- def remove_all_file(filepath, file_name):
- """
- 刪除 MAC 臨時(shí)文件
- :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 可執(zhí)行文件。
- # 安裝 pyinstaller
- pip3 install pyinstaller
- # 把 py 文件打包成 exe 可執(zhí)行文件
- # 圖標(biāo):img.ico
- pyinstaller -F -i img.ico del_mac_files.py
為了保證程序一直在后臺運(yùn)行,我們需要創(chuàng)建一個(gè) 系統(tǒng)服務(wù),讓將可執(zhí)行文件一直在后臺執(zhí)行。
instsrv.exe 和 srvany.exe 這兩個(gè)文件可以非常方便的創(chuàng)建系統(tǒng)服務(wù)。其中,instsrv.exe 用于創(chuàng)建、刪除服務(wù);srvany.exe 用于保障服務(wù)能正常啟動。
- # 注冊服務(wù)
- # instsrv.exe 服務(wù)名 srvany.exe
- c:\instsrv.exe del_mac_tempfile c:\srvany.exe
需要注意的是,運(yùn)行注冊服務(wù)命令時(shí),需要以管理員權(quán)限運(yùn)行 CMD 來執(zhí)行。
注冊完服務(wù)之后,還需要通過注冊表把服務(wù)和可執(zhí)行程序關(guān)聯(lián)起來。
- # 注冊表服務(wù)的目錄
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
在注冊表中找到上面創(chuàng)建的服務(wù),新建一個(gè) Parameters 的項(xiàng),在項(xiàng)內(nèi)再創(chuàng)建兩個(gè)字符串,分別指向可執(zhí)行文件和可執(zhí)行文件的完整目錄。
最后,services.msc 命令打開服務(wù)管理,找到目標(biāo)服務(wù),設(shè)置允許服務(wù)和桌面交互,設(shè)置開啟服務(wù)并設(shè)置為自啟。
3.結(jié)果結(jié)論
通過以上注冊的服務(wù),每次插入移動硬盤,都會自動去遍歷移動硬盤盤的文件,查找 Mac 臨時(shí)文件并刪除。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流