Jan-03-2020, 09:35 AM
Hi,
I made this attempt, it works fine, but I'm not satisfied with it. Couldn't it be done easier in a more pythonic way?
Is there a method for this job in a module? I havent figured it out how to remove the directories as well.
Here is my code:
I made this attempt, it works fine, but I'm not satisfied with it. Couldn't it be done easier in a more pythonic way?
Is there a method for this job in a module? I havent figured it out how to remove the directories as well.
Here is my code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import os import time class FolderCleaner: """ Removes files from older that gives days windows env: 'c:\\exports\\subfolder\\' """ path = '' days = 0 def __init__( self , path, days): if not os.path.exists(path): raise TypeError( "folder does not exist" ) self .path = path if days < 0 or isinstance (days, bool ) or not isinstance (days, int ): raise ValueError( "days must be positive integer" ) self .days = days self .clean() def clean( self ): time_in_secs = time.time() - ( self .days * 24 * 60 * 60 ) for root, dirs, files in os.walk( self .path, topdown = False ): for file in files: full_path = os.path.join(root, file ) stat = os.stat(full_path) if stat.st_mtime < = time_in_secs: os.remove(full_path) |