0

サーバーがあり、そのサーバーから特定のフォルダーにあるファイルとフォルダーを削除する必要があります。これらを3か月ごとに削除したいのですが、crontabとpythonを使用してそれを行う方法をすでに知っています。 3 か月以上経過しているファイルまたはフォルダーを削除するには、

ファイルとフォルダーを削除するために使用しているpythonコードは次のとおりです。

import os
import shutil
path = '/path/to/folder'

for root, dirs, files in os.walk(path):
        for f in files:
                os.unlink(os.path.join(root, f))
        for d in dirs:
                shutil.rmtree(os.path.join(root,d))

私が今欲しいのは、最後に変更されたすべてのファイルとフォルダーの月を取得し、これを現在の月と比較し、その「年齢」が3か月以上の場合にのみ削除することです。

何か助けはありますか?

4

2 に答える 2

0

これが答えです。

3 か月以上前のファイルを削除する代わりに、6 か月以上前のファイルとフォルダーを削除しています。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, glob, shutil, time, datetime
path = glob.glob('/home/piratinha/*')
now  = time.time()
now_str = datetime.datetime.fromtimestamp(now).strftime('%d-%m-%Y %H:%M:%S')
print now_str
for f in path:
    if os.stat(f).st_mtime < now - (6 * 30 * 86400):
        if os.path.isfile(f):
            print "Removendo", f
            os.remove(f)
            print "Arquivo Removido"
        else:
            print "Removendo", f
            shutil.rmtree(f)
            print "Pasta Removida"
else:
    print   "Todos os arquivos e pastas são mais novos do que 6 meses."

print now_str

BR、

レッドコード

于 2015-06-22T19:43:34.537 に答える