国产探花免费观看_亚洲丰满少妇自慰呻吟_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) #也直接刪除            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳泉市| 隆昌县| 武冈市| 新竹县| 通道| 武山县| 普格县| 景洪市| 通城县| 柘荣县| 宕昌县| 峨山| 睢宁县| 宝坻区| 普宁市| 桃源县| 宜丰县| 年辖:市辖区| 宁国市| 平昌县| 潼南县| 邹平县| 高唐县| 澜沧| 宽甸| 中山市| 秭归县| 永宁县| 大同县| 章丘市| 宁安市| 连南| 临潭县| 平和县| 栾川县| 临朐县| 孟津县| 津南区| 嵊泗县| 永丰县| 桦川县|