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


  • 參考http://www.cnblogs.com/iderek/p/8035757.html
  • os.listdir(dirname):列出dirname下的目錄和文件
  • os.getcwd():獲得當前工作目錄
  • os.curdir:返回當前目錄('.')
  • os.chdir(dirname):改變工作目錄到dirname
  • os.path.isdir(name):判斷name是不是一個目錄,name不是目錄就返回false
  • os.path.isfile(name):判斷name是不是一個文件,不存在name也返回false
  • os.path.exists(name):判斷是否存在文件或目錄name
  • os.path.getsize(name):獲得文件大小,如果name是目錄返回0L
  • os.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 shutil, os

os.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) #也直接刪除
方法二
import os, datetime

dirToBeEmptied = 'D:\_Data\Python\os' #需要清空的文件夾

ds = list(os.walk(dirToBeEmptied)) #獲得所有文件夾的信息列表
delta = datetime.timedelta(days=365) #設定365天前的文件為過期
now = datetime.datetime.now() #獲取當前時間

for d in ds: #遍歷該列表
    os.chdir(d[0]) #進入本級路徑,防止找不到文件而報錯
    if d[2] != []: #如果該路徑下有文件
        for x in d[2]: #遍歷這些文件
            ctime = datetime.datetime.fromtimestamp(os.path.getctime(x)) #獲取文件創建時間
            if ctime < (now-delta): #若創建於delta天前
                os.remove(x) #則刪掉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM