2017-02-13 19 views
2

У меня возникли проблемы с приемом метода безопасного удаления всех, кроме самой последней созданной или обновленной папки в предоставленном корневом каталоге. У меня есть эта базовая установка структуры, но я не уверен, как действовать дальше:Удалить все, кроме самой новой папки в Python

for root, folders, files in os.walk(output_folder): 
    for folder in folders: 

ответ

1

Это может работать для вас: -

import os 
import datetime as dt 
import shutil 


now = dt.datetime.now() 
ago = now-dt.timedelta(minutes=30) #Mention the required time 

for root, dirs,files in os.walk('/home/piyush/pppptest'): #put required directory path 
    for fname in files: 
     path = os.path.join(root, fname) 
     st = os.stat(path)  
     mtime = dt.datetime.fromtimestamp(st.st_mtime) #Gives you the modified time of file 
     # print mtime 
     if mtime > ago: 
      print('%s modified %s'%(path, mtime)) #You can check path and modified and work on it as per your requirement 
      shutil.rmtree('path') #You can delete it. 
1

Вы можете найти самую новую папку, как этот

import os, shutil 

newest_folder = max(folders, key=os.path.getmtime) 

for fname in folders: 
    if fname != newest_folder: 
     shutil.rmtree(folder) 

Вы можете использовать getctime вместо getmtime в зависимости от конкретных требований