国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用Python刪除本地目錄下某一時間點之前創建的所有文件的實例

2020-02-16 11:05:13
字體:
來源:轉載
供稿:網友

因為工作原因,需要定期清理某個文件夾下面創建時間超過1年的所有文件,所以今天集中學習了一下Python對于本地文件及文件夾的操作。網上 這篇文章 簡明扼要地整理出最常見的os方法,抄襲如下:

os.listdir(dirname):列出dirname下的目錄和文件os.getcwd():獲得當前工作目錄os.curdir:返回當前目錄('.')os.chdir(dirname):改變工作目錄到dirnameos.path.isdir(name):判斷name是不是一個目錄,name不是目錄就返回falseos.path.isfile(name):判斷name是不是一個文件,不存在name也返回falseos.path.exists(name):判斷是否存在文件或目錄nameos.path.getsize(name):獲得文件大小,如果name是目錄返回0Los.path.abspath(name):獲得絕對路徑os.path.normpath(path):規范path字符串形式os.path.split(name):分割文件名與目錄(事實上,如果你完全使用目錄,它也會將最后一個目錄作為文件名而分離,同時它不會判斷文件或目錄是否存在)os.path.splitext():分離文件名與擴展名os.path.join(path,name):連接目錄與文件名或目錄os.path.basename(path):返回文件名os.path.dirname(path):返回文件路徑os.remove(dir) #dir為要刪除的文件夾或者文件路徑os.rmdir(path) #path要刪除的目錄的路徑。需要說明的是,使用os.rmdir刪除的目錄必須為空目錄,否則函數出錯。os.path.getmtime(name) #獲取文件的修改時間os.stat(path).st_mtime#獲取文件的修改時間os.stat(path).st_ctime #獲取文件修改時間os.path.getctime(name)#獲取文件的創建時間

于是我照著這些方法,費半天勁,終于寫出了“清理某路徑下所有文件及文件夾”的方法,代碼如下:

import osdirToBeEmptied = 'D:/_Data/Python/os' #需要清空的文件夾ds = list(os.walk(dirToBeEmptied)) #獲得所有文件夾的信息列表dsr = ds[::-1] #反轉該列表,從最底層的文件夾開始清算for d in dsr: #遍歷該列表 print(d) #打印出列表項,觀察規律 if d[2] != []: #如果該路徑下有文件  for x in d[2]: #先將文件清理干凈   os.remove(os.path.join(d[0], x))for d in dsr: #再次遍歷該列表 if d[1] != []: #如果該路徑下有子文件夾  for y in d[1]: #將子文件夾清理干凈   os.rmdir(os.path.join(d[0], y))

之所以這么麻煩,是因為 os.rmdir() 有個毛病,只能刪除“空”文件夾。所以只能從最底層的文件夾開始清理,一級一級往上,才能清干凈。

后來想想,應該有更簡便的方法,因為清空文件夾是很常見的動作。查了Python官方文檔,發現了os以外的另一個模塊:shutil(高級文件操作),竟然有 shutil.rmtree() 的方法,不僅是清空,直接連文件夾都一起刪掉,太兇殘了!

為了“僅僅清空”,我搭配使用 shutil 模塊重寫了代碼:

import shutil, osos.chdir('d:/_data/python/os') #進入要清空的目錄ds = list(os.listdir()) #獲得該目錄下所有文件或文件夾列表for d in ds: #遍歷該列表 if os.path.isfile(d): #如果列表項是文件  os.remove(d) #直接刪除 else: #如果不是文件,肯定是文件夾  shutil.rmtree(d) #也直接刪除            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁力市| 台山市| 萍乡市| 雅安市| 龙门县| 五大连池市| 隆德县| 曲麻莱县| 闽侯县| 苍溪县| 离岛区| 垫江县| 巨鹿县| 孙吴县| 武邑县| 宽甸| 兴海县| 阿瓦提县| 理塘县| 鹤岗市| 桂林市| 泸溪县| 屏边| 化州市| 岗巴县| 浙江省| 宜春市| 六盘水市| 延庆县| 邯郸县| 盐山县| 岑溪市| 阿瓦提县| 肥乡县| 靖远县| 舟曲县| 临夏市| 盘锦市| 铅山县| 玛曲县| 韩城市|