python尋找含有關(guān)鍵字文件和刪除文件夾方式
尋找含有關(guān)鍵字文件和刪除文件夾
我們往往在操作文件時(shí),會(huì)不知道文件具體的路徑。
一般如果只是處理一個(gè)文件的話我們可以在文件所在的文件夾下運(yùn)行python腳本,默認(rèn)為當(dāng)前腳本。
而如果一個(gè)文件有多層目錄結(jié)構(gòu)時(shí),往往這種方法很有局限性。
例如在處理mesaage文件時(shí),先要解壓一個(gè)壓縮文件,其中有兩個(gè)文件夾,而每個(gè)文件夾下的第四層目錄中都有一個(gè)message文件,現(xiàn)在所要做的就是將每個(gè)message文件讀入,然后進(jìn)行分析。
若使用絕對(duì)路徑去讀入文件無(wú)疑降低了代碼的重用性,所以就寫了一個(gè)尋找關(guān)鍵字文件的函數(shù)。(函數(shù)還有很多漏洞,但能解決燃眉之急了。)
#尋找關(guān)鍵字文件 def findfile(keyword,root): #keyword為關(guān)鍵字,root為文件夾路徑 filelist=[] #存放每個(gè)文件 rfilelist=[] #存放匹配文件 for root,dirs,files in os.walk(root): for name in files: filelist.append(os.path.join(root,name)) #遍歷路徑文件下的所有文件夾,將所有文件放入filelist for i in filelist: if os.path.isfile(i): if keyword in os.path.basename(os.path.splitext(i)[0]): rfilelist.append(i) else: pass else: pass return rfilelist
以上為簡(jiǎn)單的關(guān)鍵字文件查找
有時(shí)候解壓出來(lái)的文件會(huì)很多,而我們希望獲得了有用的數(shù)據(jù)后,將解壓出來(lái)的文件再刪除掉,所以就有了刪除解壓文件的函數(shù)。
在此處先要導(dǎo)入shutil包
import shutil? #filelist ?為解壓出來(lái)的文件列表? def ?delete_unzip(filelist): ? ? ? ? thfile=filelist ? ? ? ? for i in thfile: ? ? ? ? ? ? ? ? shutil.rmtree(os.path.splitext(i)[0])
python刪除一個(gè)文件或文件夾
使用python刪除一個(gè)文件或文件夾
需要使用os模塊
import os os.remove(path) ?# path是文件的路徑,如果這個(gè)路徑是一個(gè)文件夾,則會(huì)拋出OSError的錯(cuò)誤,這時(shí)需用用rmdir()來(lái)刪除 os.rmdir(path) ?# path是文件夾路徑,注意文件夾需要時(shí)空的才能被刪除 os.unlink('F:\新建文本文檔.txt') ?# unlink的功能和remove一樣是刪除一個(gè)文件,但是刪除一個(gè)刪除一個(gè)正在使用的文件會(huì)報(bào)錯(cuò)。
import os path = 'F:/新建文本文檔.txt' ?# 文件路徑 if os.path.exists(path): ?# 如果文件存在 ? ? # 刪除文件,可使用以下兩種方法。 ? ? os.remove(path) ? ? ? #os.unlink(path) else: ? ? print('no such file:%s'%my_file) ?# 則返回文件不存在
import os os.removedirs(path) ?# 遞歸地刪除目錄。如果子目錄成功被刪除,則將會(huì)成功刪除父目錄,子目錄沒成功刪除,將拋異常。 import os for root, dirs, files in os.walk(top, topdown=False): ? ? for name in files: ? ? ? ? os.remove(os.path.join(root, name)) ? ? for name in dirs: ? ? ? ? os.rmdir(os.path.join(root, name))
另一種方法
import shutil shutil.rmtree()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
這可能是最好玩的python GUI入門實(shí)例(推薦)
這篇文章主要介紹了這可能是最好玩的python GUI入門實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pytorch加載語(yǔ)音類自定義數(shù)據(jù)集的方法教程
這篇文章主要給大家介紹了關(guān)于pytorch加載語(yǔ)音類自定義數(shù)據(jù)集的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11只需要100行Python代碼就可以實(shí)現(xiàn)的貪吃蛇小游戲
貪吃蛇小游戲相信80、90后小時(shí)候肯定都玩過(guò),那么你知道如果通過(guò)Python來(lái)實(shí)現(xiàn)嗎?今天就來(lái)教大家,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05tensorflow 模型權(quán)重導(dǎo)出實(shí)例
今天小編就為大家分享一篇tensorflow 模型權(quán)重導(dǎo)出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例
今天小編就為大家分享一篇Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)(二)決策樹
這篇文章主要介紹了python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)第二篇,決策樹的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01