tags:

views:

73

answers:

2

So at the moment I'm trying to delete files listed in the directory that are 1 minute old, I will change that value once I have the script working.
The code below returns the error: AttributeError: 'str' object has no attribute 'mtime'

import time
import os 
#from path import path

seven_days_ago = time.time() - 60
folder = '/home/rv/Desktop/test'

for somefile in os.listdir(folder):
    if int(somefile.mtime) < seven_days_ago:
        somefile.remove()
+2  A: 

That's because somefile is a string, a relative filename. What you need to do is to construct the full path (i.e., absolute path) of the file, which you can do with the os.path.join function, and pass it to the os.stat, the return value will have an attribute st_mtime which will contain your desired value as an integer.

SilentGhost
A: 
import time
import os

seven_days_ago = time.time() - 60
folder = '/home/rv/Desktop/test'
os.chdir(folder)
for somefile in os.listdir('.'):
    st=os.stat(somefile)
    mtime=st.st_mtime
    if mtime < seven_days_ago:
        print('remove %s'%somefile)
        # os.unlink(somefile) # uncomment only if you are sure
unutbu