python刪除指定類型(或非指定)的文件實(shí)例詳解
本文實(shí)例分析了python刪除指定類型(或非指定)的文件用法。分享給大家供大家參考。具體如下:
如下,刪除目錄下非源碼文件
import os import string def del_files(dir,topdown=True): for root, dirs, files in os.walk(dir, topdown): for name in files: pathname = os.path.splitext(os.path.join(root, name)) if (pathname[1] != ".cpp" and pathname[1] != ".hpp" and pathname[1] != ".h"): os.remove(os.path.join(root, name)) print(os.path.join(root,name)) dir = os.getcwd() print(dir) del_files(dir) #will delete the self .py file after run !!!-_- os.removedirs(dir) #delete the empty directory recursively
以上功能,遍歷文件夾 也可以用函數(shù) os.listdir (dirname) 。只不過(guò)其與os.walk(dir, topdown) 的方式還是略有差異。
listdir 是按命名規(guī)則,對(duì)文件夾和文件、統(tǒng)一采用深度優(yōu)先搜索的方式,進(jìn)行列舉
而os.walk的標(biāo)準(zhǔn)例程一般是先遍歷文件,后遍歷文件夾。
學(xué)習(xí)要點(diǎn):
os類的函數(shù):
os.getenv()和os.putenv()函數(shù)分別用來(lái)讀取和設(shè)置環(huán)境變量。
os.system()函數(shù)用來(lái)運(yùn)行shell命令。
os.linesep字符串給出當(dāng)前平臺(tái)使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
與路徑相關(guān)的os函數(shù)
os.listdir(dirname):列出dirname下的目錄和文件
os.getcwd():獲得當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑。
os.curdir:返回當(dāng)前目錄('.')
os.chdir(dirname):改變工作目錄到dirname
os.path.isdir(name):判斷name是不是一個(gè)目錄,name不是目錄就返回false
os.path.isfile(name):判斷name是不是一個(gè)文件,不存在name也返回false
os.path.exists(name):判斷是否存在文件或目錄name
os.path.getsize(name):獲得文件大小,如果name是目錄返回0
os.path.abspath(name):獲得絕對(duì)路徑
os.path.normpath(path):規(guī)范path字符串形式
os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)
>>> os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code', 'poem.txt')
os.path.splitext():分離文件名與擴(kuò)展名
os.rename(name1, name2) 重命名文件
如修改文件類型,os.rename(os.path.join(root, name), pathname[0]+".cpp") pathname[0]為文件名,pathname[1]為擴(kuò)展名
os.path.join(path,name):連接目錄與文件名或目錄
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路徑
os.walk返回三元組形式,相當(dāng)于三元組列表,遍歷path,返回一個(gè)對(duì)象,他的每個(gè)部分都是一個(gè)三元組,('目錄x',[目錄x下的目錄list],目錄x下面的文件)
string類型的數(shù)據(jù),可以使用==, !=等運(yùn)算符
多參考python幫助文檔,很強(qiáng)大。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
conda虛擬環(huán)境下使用pyinstaller打包程序?yàn)閑xe文件全過(guò)程
pyinstaller是一個(gè)支持跨平臺(tái)使用的第三方庫(kù),它可以將腳本執(zhí)行所需的模塊和庫(kù),自動(dòng)分析、收集并生成一個(gè)文件夾或者可執(zhí)行文件,這篇文章主要給大家介紹了關(guān)于conda虛擬環(huán)境下使用pyinstaller打包程序?yàn)閑xe文件的相關(guān)資料,需要的朋友可以參考下2023-12-12Python中requests、aiohttp、httpx性能比拼
本文主要介紹了Python中requests、aiohttp、httpx性能比拼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06python flask web服務(wù)實(shí)現(xiàn)更換默認(rèn)端口和IP的方法
今天小編就為大家分享一篇python flask web服務(wù)實(shí)現(xiàn)更換默認(rèn)端口和IP的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python中用logging實(shí)現(xiàn)日志滾動(dòng)和過(guò)期日志刪除功能
這篇文章主要介紹了python中用logging實(shí)現(xiàn)日志滾動(dòng)和過(guò)期日志刪除功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08python pytorch中.view()函數(shù)的用法解讀
這篇文章主要介紹了python pytorch中.view()函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)
這篇文章主要介紹了Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02Python3.8對(duì)可迭代解包的改進(jìn)及用法詳解
這篇文章主要介紹了Python3.8對(duì)可迭代解包的改進(jìn)及用法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10PyQt5實(shí)現(xiàn)QLineEdit正則表達(dá)式輸入驗(yàn)證器
這篇文章主要介紹了PyQt5實(shí)現(xiàn)QLineEdit正則表達(dá)式輸入驗(yàn)證器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04