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新手,所以我希望在这里进行一些协调,而不是要求完整的代码
谢谢
相关问题 更多 >
编程相关推荐