利用python清除移動(dòng)硬盤中的臨時(shí)文件
1、目標(biāo)場景
用過Mac OS的朋友應(yīng)該都遇到過,日常的文件操作會(huì)在同級(jí)目錄下產(chǎn)生一些特定的臨時(shí)文件。
平常將文件夾打包成壓縮包或拷貝文件夾到移動(dòng)硬盤內(nèi),臨時(shí)文件會(huì)包含在里面,如果是程序源代碼,在Windows系統(tǒng)下編譯有時(shí)候還會(huì)受到影響。
本篇文章的目的是在移動(dòng)硬盤插入到電腦的同時(shí),利用Python自動(dòng)化和Windows服務(wù)刪除掉這些臨時(shí)文件。
2、編寫代碼
首先,我們需要循環(huán)檢測PC的驅(qū)動(dòng)器,判斷是否存在可移動(dòng)的磁盤。
# 循環(huán)遍歷,對(duì)每一個(gè)驅(qū)動(dòng)器進(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)
如果檢測到存在可移動(dòng)的磁盤,就遍歷文件,刪除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
為了保證程序一直在后臺(tái)運(yùn)行,我們需要?jiǎng)?chuàng)建一個(gè)系統(tǒng)服務(wù),讓將可執(zhí)行文件一直在后臺(tái)執(zhí)行。
instsrv.exe和srvany.exe這兩個(gè)文件可以非常方便的創(chuàng)建系統(tǒng)服務(wù)。其中,instsrv.exe用于創(chuàng)建、刪除服務(wù);srvany.exe用于保障服務(wù)能正常啟動(dòng)。
# 注冊(cè)服務(wù) # instsrv.exe 服務(wù)名 srvany.exec:\instsrv.exe del_mac_tempfile c:\srvany.exe
需要注意的是,運(yùn)行注冊(cè)服務(wù)命令時(shí),需要以管理員權(quán)限運(yùn)行CMD來執(zhí)行。
注冊(cè)完服務(wù)之后,還需要通過注冊(cè)表把服務(wù)和可執(zhí)行程序關(guān)聯(lián)起來。
# 注冊(cè)表服務(wù)的目錄 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
在注冊(cè)表中找到上面創(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é) 論
通過以上注冊(cè)的服務(wù),每次插入移動(dòng)硬盤,都會(huì)自動(dòng)去遍歷移動(dòng)硬盤盤的文件,查找Mac臨時(shí)文件并刪除。
以上就是利用python清除移動(dòng)硬盤中的臨時(shí)文件的詳細(xì)內(nèi)容,更多關(guān)于python 清除文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python可視化學(xué)習(xí)之matplotlib內(nèi)置單顏色
這篇文章主要為大家介紹了Python matplotlib中支持的顏色格式及內(nèi)置的單顏色色號(hào)的匯總,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-02-02Python?Asyncio中Coroutines,Tasks,Future可等待對(duì)象的關(guān)系及作用
這篇文章主要介紹了Python?Asyncio中Coroutines,Tasks,Future可等待對(duì)象的關(guān)系及作用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06Python工程師面試題 與Python基礎(chǔ)語法相關(guān)
這篇文章主要為大家分享了Python工程師面試題,面試題的內(nèi)容主要與Python基礎(chǔ)語法相關(guān),感興趣的小伙伴們可以參考一下2016-01-01cython加速python代碼的方法實(shí)現(xiàn)
本文主要介紹了cython加速python代碼的方法實(shí)現(xiàn),特別是在涉及到數(shù)值計(jì)算密集型任務(wù)時(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07Pandas?Matplotlib保存圖形時(shí)坐標(biāo)軸標(biāo)簽太長導(dǎo)致顯示不全問題的解決
在使用matplotlib作圖的時(shí)候,有的時(shí)候會(huì)遇到畫圖時(shí)顯示不全和圖片保存時(shí)不完整的問題,這篇文章主要給大家介紹了關(guān)于Pandas?Matplotlib保存圖形時(shí)坐標(biāo)軸標(biāo)簽太長導(dǎo)致顯示不全問題的解決方法,需要的朋友可以參考下2022-06-06python網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)個(gè)性化音樂播放器示例解析
這篇文章主要為大家介紹了使用python網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)個(gè)性化音樂播放器的詳細(xì)示例代碼以及內(nèi)容解析,有需要的朋友?可以借鑒參考下希望能夠有所幫助2022-03-03Python實(shí)現(xiàn)給圖片添加文字或圖片水印
在現(xiàn)今的數(shù)字化時(shí)代,網(wǎng)絡(luò)上的圖片泛濫,盜圖現(xiàn)象也越來越嚴(yán)重。因此,在發(fā)布文章時(shí),為了保護(hù)自己的原創(chuàng)作品版權(quán),很多人選擇使用水印來保護(hù)他們的圖片。本文就和大家分享了Python實(shí)現(xiàn)給圖片添加文字或圖片水印的方法,需要的可以收藏一下2023-05-05Python時(shí)間戳與時(shí)間字符串互相轉(zhuǎn)換實(shí)例代碼
這篇文章主要介紹了Python時(shí)間戳與時(shí)間字符串互相轉(zhuǎn)換實(shí)例代碼,大家參考使用2013-11-11