利用python清除移動硬盤中的臨時文件
1、目標(biāo)場景
用過Mac OS的朋友應(yīng)該都遇到過,日常的文件操作會在同級目錄下產(chǎn)生一些特定的臨時文件。
平常將文件夾打包成壓縮包或拷貝文件夾到移動硬盤內(nèi),臨時文件會包含在里面,如果是程序源代碼,在Windows系統(tǒng)下編譯有時候還會受到影響。
本篇文章的目的是在移動硬盤插入到電腦的同時,利用Python自動化和Windows服務(wù)刪除掉這些臨時文件。
2、編寫代碼
首先,我們需要循環(huán)檢測PC的驅(qū)動器,判斷是否存在可移動的磁盤。
# 循環(huán)遍歷,對每一個驅(qū)動器進(jìn)行判斷while True:for item in disk_partitions(): if ’removable’ in item.opts:driver, opts = item.device, item.opts# 刪除臨時文件passbreak else:continue# 休眠5s,繼續(xù)遍歷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可執(zhí)行文件。
# 安裝 pyinstaller pip3 install pyinstaller # 把 py 文件打包成 exe 可執(zhí)行文件# 圖標(biāo):img.icopyinstaller -F -i img.ico del_mac_files.py
為了保證程序一直在后臺運(yùn)行,我們需要創(chuàng)建一個系統(tǒng)服務(wù),讓將可執(zhí)行文件一直在后臺執(zhí)行。
instsrv.exe和srvany.exe這兩個文件可以非常方便的創(chuàng)建系統(tǒng)服務(wù)。其中,instsrv.exe用于創(chuàng)建、刪除服務(wù);srvany.exe用于保障服務(wù)能正常啟動。
# 注冊服務(wù)# instsrv.exe 服務(wù)名 srvany.exec:instsrv.exe del_mac_tempfile c:srvany.exe
需要注意的是,運(yùn)行注冊服務(wù)命令時,需要以管理員權(quán)限運(yùn)行CMD來執(zhí)行。
注冊完服務(wù)之后,還需要通過注冊表把服務(wù)和可執(zhí)行程序關(guān)聯(lián)起來。
# 注冊表服務(wù)的目錄HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
在注冊表中找到上面創(chuàng)建的服務(wù),新建一個Parameters的項,在項內(nèi)再創(chuàng)建兩個字符串,分別指向可執(zhí)行文件和可執(zhí)行文件的完整目錄。
最后,services.msc命令打開服務(wù)管理,找到目標(biāo)服務(wù),設(shè)置允許服務(wù)和桌面交互,設(shè)置開啟服務(wù)并設(shè)置為自啟。
3、結(jié) 果 結(jié) 論
通過以上注冊的服務(wù),每次插入移動硬盤,都會自動去遍歷移動硬盤盤的文件,查找Mac臨時文件并刪除。
以上就是利用python清除移動硬盤中的臨時文件的詳細(xì)內(nèi)容,更多關(guān)于python 清除文件的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. asp中將字符串轉(zhuǎn)數(shù)字的函數(shù)小結(jié)2. AJAX實現(xiàn)省市縣三級聯(lián)動效果3. python mysql項目實戰(zhàn)及框架搭建過程4. 解析原生JS getComputedStyle5. JSP實現(xiàn)簡單網(wǎng)頁計算器6. Python基于數(shù)列實現(xiàn)購物車程序過程詳解7. ASP強(qiáng)制刷新網(wǎng)頁和判斷文件地址實例代碼8. 學(xué)習(xí)小實例--滾動條的簡單實現(xiàn)9. 移動端HTML5實現(xiàn)拍照功能的兩種方法10. 完美實現(xiàn)CSS垂直居中的11種方法
