удаление старых папок с функцией даты и времени - PullRequest
3 голосов
/ 23 декабря 2009

Я пытаюсь удалить старые папки и спрашиваю, знает ли кто-нибудь, как установить переменную, которая позволяет мне проверять переменную todaystr, которая является сегодняшней датой и минус 7 дней этой строки, и сохранять ее в другой переменной. Я хочу автоматически удалять старые файлы через неделю. Ниже показано, как настраивается переменная todaystr.

todaystr = datetime.date.today().isoformat()  

Я хотел бы создать переменную 'oldfile', в которой будет храниться текущая дата минус 7 дней, чтобы я мог удалить файл с этой датой. Спасибо за любую помощь.

Ответы [ 2 ]

4 голосов
/ 23 декабря 2009
import datetime
import os
import shutil

threshold = datetime.datetime.now() + datetime.timedelta(days=-7)
file_time = datetime.datetime.fromtimestamp(os.path.getmtime('/folder_name'))

if file_time < threshold:
    shutil.rmtree('/folder_name')
0 голосов
/ 24 декабря 2009

Я отношусь к ответу выше, он работает очень хорошо, код, который я использовал, в конце был другим. Я создаю имя папки с текущей датой, поэтому при запуске ночной сборки будет удалена только папка с именем 7 дней назад. Код выглядит следующим образом:

import datetime  
import os  
import calendar  

today = datetime.date.today()
todaystr = datetime.date.today().isoformat()
minus_seven = today.replace(day=today.day-7).isoformat()


if os.path.exists(minus_seven):
    os.system("sudo rm -rf "+minus_seven)
    print 'Sandboxes from 7 days ago removed'

Я использовал linux для удаления папки, так как в мой код встроен какой-то linux, и он работает нормально, как этот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...