如何编写一个Python脚本来删除10个不同目录中以.log结尾的所有文件

2024-10-01 22:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

请提供一个Python脚本,它可以删除10个不同目录中超过5天的所有.log文件。在

路径1类似于abc/bcd/def/xyz/fkd/.log
路径2类似于abc/bcd/def/mnq/kjf/.log

以此类推,前三个目录是相同的,但之后不同。在


Tags: 文件路径目录脚本logdefabcxyz
3条回答

也许你可以试试这个:

import os

os.system("rm *.log")

尝试以下方法:

from datetime import datetime, timedelta    
import os
import time

folder_root = r'abc/def'
five_days_ago = datetime.today() - timedelta(days=5)

for root, dir_names, file_names in os.walk(folder_root):
    file_names = [file_name for file_name in file_names if os.path.splitext(file_name)[1] == '.log']

    for file_name in file_names:
        cur_file = os.path.join(root, file_name)
        modified_time = datetime.strptime(time.ctime(os.path.getmtime(cur_file)), "%a %b %d %H:%M:%S %Y")

        if modified_time < five_days_ago:
            print 'Removing: {}, last modified {}'.format(cur_file, modified_time)
            #os.remove(cur_file)     # uncomment when you are sure it has found the correct files

这使用Python的os.walk()函数迭代所有子文件夹。对于每个文件夹,它只过滤出.log文件,并计算每个文件的修改时间。如果是五天前,则调用os.remove()来删除文件。在

下面是我准备的脚本,它提供了所有目录中日志文件的完整列表。在

导入时间 起始时间导入strftime,gmtime

现在=时间。时间() 日志=打开('/home/vvivek/清理.log','a')

对于路径、目录、文件手术室步行('/tibco/bw/app/): 对于文件中的文件: 如果os.path.splitext操作系统(文件)[-1]='.log': 文件=os.path.join操作系统(路径,文件) 创建时间=os.path.getmtime操作系统(文件) 如果(现在-创建时间)/(24*3600)>;=7: 日志.写入(strftime(“%Y-%m-%d%H:%m:%S”,gmtime()) 日志.写入('|文件已删除|') 日志.写入(文件) 日志.写入('\n') 日志关闭()

我没有包括操作系统删除()因为目前我仍然需要对代码进行更改,而且它没有过滤以结尾的文件。日志。一些数字. 在

在注:同时,我是python新手,所以我希望在这里进行一些协调,而不是要求完整的代码

谢谢

相关问题 更多 >

    热门问题