Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤(pán)文件
1、引言
小絲:魚(yú)哥, 請(qǐng)教你個(gè)問(wèn)題。
小魚(yú):你覺(jué)得你得問(wèn)題,是正兒八經(jīng)的嗎?
小絲:那必須的, 人都正經(jīng),何況問(wèn)題呢?
小魚(yú):那可不敢說(shuō), 你得問(wèn)題這次是否正經(jīng)我不敢說(shuō),但是人, 肯定不正經(jīng)。
小絲:別這么說(shuō),魚(yú)哥。
小魚(yú):還用我說(shuō), 你說(shuō)說(shuō)你自己的座駕是啥?
小絲:額… 我也沒(méi)總?cè)ハ丛“?/p>
小魚(yú):拉倒吧, 一周7天,你恨不得8天都在泡澡… 我還能說(shuō)哈
小絲:魚(yú)哥, 男人何苦為難男人。
小魚(yú):對(duì)了, 你剛剛想問(wèn)啥問(wèn)題來(lái)著?
小絲:魚(yú)哥,那你保證,只討論問(wèn)題, 不討論洗澡…
小魚(yú):嗯, 好, 我保證不會(huì)說(shuō) 你經(jīng)常在 紅浪漫 洗浴中心的。
小絲:魚(yú)哥… 你不講究…
小魚(yú):那你還不趕緊說(shuō)你想問(wèn)啥問(wèn)題?
小絲:我說(shuō)… 能不能一次全部刪除我的文件夾下的所有文件, 我不想手動(dòng)刪除.
小魚(yú):你可真懶, 那你直接把文件夾刪除得了 ,再不行,你把磁盤(pán)格式化, 啥文件都沒(méi)了。
小絲:魚(yú)哥,別鬧,正兒八經(jīng)的問(wèn)題。
小魚(yú):嗯, 這還不簡(jiǎn)單,就是它。
2、代碼實(shí)戰(zhàn)
2.1 模塊介紹
關(guān)于 os模塊, 相信大家都比較熟悉,例如:
- os.listdir():直接返回指定路徑下文件和文件夾組成的列表;
- os.walk():獲取每層文件夾下的文件路徑,文件夾列表,文件列表;
- os.path.exists():判斷文件是否存在, True、false;
- os.mkdir():創(chuàng)建一個(gè)新的文件夾;
- os.rmdir():刪除文件夾();
但是今天, 我們要分享是系統(tǒng)模塊的操作方法,如下:
- os.getenv():獲取(盤(pán)符)信息;
- os.environ:系統(tǒng)盤(pán)符;
- os.chdir():更改目錄;
- os.getcwd():獲取當(dāng)前路徑;
2.2 獲取盤(pán)符
我們先獲取系統(tǒng)盤(pán)的磁盤(pán),很簡(jiǎn)單,我直接上代碼:
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ import os #獲取系統(tǒng)盤(pán)盤(pán)符 SystemDri_path = os.getenv('SystemDrive') print(f'系統(tǒng)盤(pán)符為{SystemDri_path}')
運(yùn)行結(jié)果
系統(tǒng)盤(pán)符為C:
2.3 獲取盤(pán)符下的目錄
我們繼續(xù)來(lái)獲取盤(pán)符下的文件,
這里,我展示3種方式,如下:
- os.listdir()
- os.environ
- os.getenv()
具體樣例,接著往下看。
2.3.1 os.listdir()
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ import os #獲取系統(tǒng)盤(pán)符下的文件 SystemDri_file = os.listdir("C:") print(f'系統(tǒng)盤(pán)符下的文件目錄:{SystemDri_file}')
運(yùn)行結(jié)果
由于職業(yè)素養(yǎng),我把系統(tǒng)盤(pán)的一些敏感目錄給打馬賽克了。
2.3.2 os.environ
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ import os #獲取系統(tǒng)盤(pán)符下的文件 SystemDri_file = os.environ print(f'系統(tǒng)盤(pán)符下的文件目錄:{SystemDri_file}')
運(yùn)行結(jié)果
同樣,我截取的是一部分內(nèi)容,
從結(jié)果可以看出,把我電腦的C盤(pán)、D盤(pán)信息都打印出來(lái)了。
2.3.3 os.getenv()
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ import os #獲取系統(tǒng)盤(pán)盤(pán)符 SystemDri_file = os.getenv('SystemDrive') #修改當(dāng)前目錄 os.chdir(SystemDri_file+'\\') #把目錄以樹(shù)形打印出來(lái)并保存在file.txt 文件 os.system('tree>>testfile.txt') print(f'執(zhí)行完成')
運(yùn)行結(jié)果
在C盤(pán)生成testfile.txt 文件
注:
系統(tǒng)盤(pán),需要超管權(quán)限, 否則, 就會(huì)提示 如下信息:
拒絕訪問(wèn)
2.4 刪除文件
2.4.1 刪除指定文件下文件
我們獲取了磁盤(pán)的目錄結(jié)構(gòu),
那么,接下來(lái),我們就可以根據(jù)指定的文件路徑,刪除目標(biāo)文件及目標(biāo)文件夾。
這里用到的方法,也就兩種:
- os.remove():刪除文件;
- os.rmdir():刪除目錄;
- os.walk():遍歷文件目錄;
我們來(lái)刪某一文件,直接上代碼:
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ ''' 實(shí)現(xiàn)功能: 使用os.walk()方法,遍歷文件目錄, 匹配則使用remove、rmdir 方法 刪除 ''' import os #設(shè)置文件路徑 file_path = r'C:\Users\Carl_DJ\Desktop\DemoTest' #遍歷目錄 for root,dirs,files in os.walk(file_path,topdown=False): #name在文件中循環(huán),如果匹配,則刪除 for _file in files: #刪除文件 os.remove(os.path.join(root,_file)) #name在文件目錄循環(huán),如果匹配,則刪除 for _dir in dirs: #刪除目錄 os.rmdir(os.path.join(root,_dir)) print(f'執(zhí)行完成')
刪除前,文件夾下的文件
運(yùn)行結(jié)果
2.4.2 刪除所有文件下文件
如果你要?jiǎng)h除系統(tǒng)下所有的文件,
只需要遍歷即可。
但是,小魚(yú)在這里強(qiáng)調(diào):
- 本段代碼,僅供演示操作;
- 執(zhí)行此段代碼需謹(jǐn)慎, 出現(xiàn)任何后果,都與小魚(yú)無(wú)關(guān);
- 切勿商用,切勿有刪系統(tǒng)跑路的想法;
代碼示例
# -*- coding:utf-8 -*- # @Time : 2022-11-16 # @Author : Carl_DJ ''' 實(shí)現(xiàn)功能: 刪除指定的磁盤(pán)下的所有文件 -->使用os.walk()方法,遍歷文件目錄, -->匹配則使用remove、rmdir 方法 刪除 ''' import os #需要?jiǎng)h除的文件路徑 list = ['C:\\\\Users\\\\Carl_DJ\\\\Desktop\\\\DemoTest1\\\\','C:\\\\Users\\\\Carl_DJ\\\\Desktop\\\\DemoTest2\\\\'] #遍歷目錄 for i in list: for root,dirs,files in os.walk(i,topdown=False): # name在文件中循環(huán),如果匹配,則刪除 for _file in files: # 刪除文件 os.remove(os.path.join(root, _file)) # name在文件目錄循環(huán),如果匹配,則刪除 for _dir in dirs: # 刪除目錄 os.remove(os.path.join(root, _dir)) print(f'執(zhí)行完成')
運(yùn)行結(jié)果與上圖一樣, 就不展示了。
3、總結(jié)
今天, 我分享了os的進(jìn)階用法,如:
- os.environ
- os.walk()
- os.getenv()
- os.rmdir()
- os.remove()
- os.chdir()
學(xué)會(huì)這些方法, 讓我們?cè)趯?shí)際工作中,會(huì)節(jié)省更多時(shí)間。
- 如果我們平時(shí)刪除文件夾下的文件, 可以直接執(zhí)行這段代碼;
- 如果我們要批量刪除多個(gè)文件夾下的文件,也可以直接執(zhí)行這段代碼;
- 如果你要?jiǎng)h除系統(tǒng)的所有文件, 那就不要試了, 畢竟,后果很難以接受, 簡(jiǎn)稱(chēng) 難受。
到此這篇關(guān)于Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤(pán)文件的文章就介紹到這了,更多相關(guān)Python os模塊刪除磁盤(pán)文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas學(xué)習(xí)之txt與sql文件的基本操作指南
Pandas是Python的第三方庫(kù),提供高性能易用的數(shù)據(jù)類(lèi)型和分析工具,下面這篇文章主要給大家介紹了關(guān)于pandas學(xué)習(xí)之txt與sql文件的基本操作指南,需要的朋友可以參考下2021-08-08python使用threading獲取線程函數(shù)返回值的實(shí)現(xiàn)方法
這篇文章主要介紹了python使用threading獲取線程函數(shù)返回值的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-11-11python文件讀取read及readlines兩種方法使用詳解
這篇文章主要為大家介紹了python文件讀取read及readlines兩種方法的使用示例及區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Django Haystack 全文檢索與關(guān)鍵詞高亮的實(shí)現(xiàn)
這篇文章主要介紹了Django Haystack 全文檢索與關(guān)鍵詞高亮的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Python采集二手車(chē)數(shù)據(jù)的超詳細(xì)講解
這篇文章主要為大家介紹了Python采集二手車(chē)數(shù)據(jù)實(shí)現(xiàn)的超詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04