I have seen some posts to delete all the files (not folders) in a specific folder, but I simply don\'t understand them.
I need to use a UNC path and delete all the f
This code removes files in the current working directory that were created >= 7 days ago. Run at your own risk.
import os
import time
current_time = time.time()
for f in os.listdir():
creation_time = os.path.getctime(f)
if (current_time - creation_time) // (24 * 3600) >= 7:
os.unlink(f)
print('{} removed'.format(f))
Another version:
import os
import time
import sys
if len(sys.argv) != 2:
print "usage", sys.argv[0], " <dir>"
sys.exit(1)
workdir = sys.argv[1]
now = time.time()
old = now - 7 * 24 * 60 * 60
for f in os.listdir(workdir):
path = os.path.join(workdir, f)
if os.path.isfile(path):
stat = os.stat(path)
if stat.st_ctime < old:
print "removing: ", path
# os.remove(path) # uncomment when you will sure :)
Based in Vadim solution a more flexible approach
Remember os.unlink(fileWithPath)
removes everything in that folder older than X days, so be careful.
############ DELETE OLDER THAN X ############
current_time = time.time()
daysToDelete = 7
directory = '/absolute/path/to/folder/'
for dirpath,_,filenames in os.walk(directory):
for f in filenames:
fileWithPath = os.path.abspath(os.path.join(dirpath, f))
creation_time = os.path.getctime(fileWithPath)
print("file available:",fileWithPath)
if (current_time - creation_time) // (24 * 3600) >= daysToDelete:
os.unlink(fileWithPath)
print('{} removed'.format(fileWithPath))
print("\n")
else:
print('{} not removed'.format(fileWithPath))