利用python清除移動(dòng)硬盤(pán)中的臨時(shí)文件
1、目標(biāo)場(chǎng)景
用過(guò)Mac OS的朋友應(yīng)該都遇到過(guò),日常的文件操作會(huì)在同級(jí)目錄下產(chǎn)生一些特定的臨時(shí)文件。
平常將文件夾打包成壓縮包或拷貝文件夾到移動(dòng)硬盤(pán)內(nèi),臨時(shí)文件會(huì)包含在里面,如果是程序源代碼,在Windows系統(tǒng)下編譯有時(shí)候還會(huì)受到影響。
本篇文章的目的是在移動(dòng)硬盤(pán)插入到電腦的同時(shí),利用Python自動(dòng)化和Windows服務(wù)刪除掉這些臨時(shí)文件。
2、編寫(xiě)代碼
首先,我們需要循環(huán)檢測(cè)PC的驅(qū)動(dòng)器,判斷是否存在可移動(dòng)的磁盤(pán)。
# 循環(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)
如果檢測(cè)到存在可移動(dòng)的磁盤(pán),就遍歷文件,刪除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來(lái)執(zhí)行。
注冊(cè)完服務(wù)之后,還需要通過(guò)注冊(cè)表把服務(wù)和可執(zhí)行程序關(guān)聯(lián)起來(lái)。
# 注冊(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命令打開(kāi)服務(wù)管理,找到目標(biāo)服務(wù),設(shè)置允許服務(wù)和桌面交互,設(shè)置開(kāi)啟服務(wù)并設(shè)置為自啟。

3、結(jié) 果 結(jié) 論
通過(guò)以上注冊(cè)的服務(wù),每次插入移動(dòng)硬盤(pán),都會(huì)自動(dòng)去遍歷移動(dòng)硬盤(pán)盤(pán)的文件,查找Mac臨時(shí)文件并刪除。
以上就是利用python清除移動(dòng)硬盤(pán)中的臨時(shí)文件的詳細(xì)內(nèi)容,更多關(guān)于python 清除文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pytorch DistributedDataParallel 多卡訓(xùn)練結(jié)果變差的解決方案
這篇文章主要介紹了pytorch DistributedDataParallel 多卡訓(xùn)練結(jié)果變差的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
python?peewee操作sqlite鎖表的問(wèn)題分析
Peewee是一種簡(jiǎn)單而小的ORM,在使用python?orm?框架?peewee?操作數(shù)據(jù)庫(kù)時(shí)時(shí)常會(huì)拋出以一個(gè)異常,下面我們就來(lái)分享一下具體的原因以及解決辦法吧2023-08-08
使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解
pycharm是個(gè)很不錯(cuò)的python開(kāi)發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間。這篇文章主要介紹了使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解,pycharm是個(gè)很不錯(cuò)的python開(kāi)發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間2018-10-10
Python實(shí)現(xiàn)高效地讀寫(xiě)大型文件
Python如何讀寫(xiě)的是大型文件,有沒(méi)有什么方法來(lái)提高效率呢,這篇文章就來(lái)和大家聊聊如何在Python中高效地讀寫(xiě)大型文件,需要的可以了解下2025-01-01
uwsgi+nginx部署Django項(xiàng)目操作示例
這篇文章主要介紹了uwsgi+nginx部署Django項(xiàng)目操作,結(jié)合實(shí)例形式簡(jiǎn)單介紹了uwsgi的概念、原理、安裝、項(xiàng)目創(chuàng)建、配置、調(diào)試運(yùn)行等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

