Python:递归删除大于x天的文件夹

时间:2013-10-16 01:10:22

标签: python

我有以下目录结构:

/year/month/day/file.txt

我希望删除/年/月/日大于x天数的整个目录。

此外,如果x天数超过当月的天数,则会删除上个月的日期/文件夹。

例如:如果今天是1月15日,并且x要删除的天数是20,则脚本应该删除除了12月的最后5天之外的所有内容。

有什么想法吗?

1 个答案:

答案 0 :(得分: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))