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