2017-02-13 3 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) 

정확한 요구 사항에 따라 getmtime 대신 getctime을 사용할 수 있습니다.