1

次のディレクトリ構造があります。

/年/月/日/file.txt

私がしたいのは、/年/月/日がx日よりも大きいディレクトリ全体を削除することです。

さらに、x の日数が当月の日数を超えた場合、前の月から日/フォルダーが削除されます。

例: 今日が 1 月 15 日で、削除する x 日数が 20 の場合、スクリプトは 12 月の最後の 5 日間を除くすべてを削除する必要があります。

何か案は?

4

1 に答える 1

3
for year in os.listdir('.'):
    for month in os.listdir(year):
        for day in os.listdir(os.path.join(year, month)):
            date = datetime.date(int(year), int(month), int(day))

dateこれで、クラスでユーティリティを使用できるようになりました。ディレクトリ全体を削除することにした場合は、shutil.rmtree.

例えば:

today = datetime.date.today()
for year in os.listdir('.'):
    for month in os.listdir(year):
        for day in os.listdir(os.path.join(year, month):
            date = datetime.date(int(year), int(month), int(day))
            age = today - date
            if age > datetime.timedelta(days=20):
                shutil.rmtree(os.path.join(year, month, day))
于 2013-10-16T01:14:47.217 に答える