Python: Удаление файлов определенного возраста

Таким образом, в данный момент я пытаюсь удалить файлы, перечисленные в каталоге, которые составляют 1 старую минуту, я изменю то значение, после того как у меня есть работа сценария.
Код ниже возвращает ошибку: 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()
8
задан SilentGhost 27 July 2010 в 17:02
поделиться

2 ответа

import time
import os

one_minute_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 < one_minute_ago:
        print('remove %s'%somefile)
        # os.unlink(somefile) # uncomment only if you are sure
11
ответ дан 5 December 2019 в 10:00
поделиться

Это потому, что somefile - это строка, относительное имя файла. Вам нужно построить полный путь (т.е. абсолютный путь) к файлу, что можно сделать с помощью функции os.path.join, и передать его в os.stat, возвращаемое значение будет иметь атрибут st_mtime, который будет содержать желаемое значение в виде целого числа.

6
ответ дан 5 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: