测试中,测试log是经常需要保存一段时间以便于后续查询,但是如果一段时间不删除,会导致硬盘空间变小而影响自动化测试,通常空间太小,自动化测试case就不能调用了,或者即使调用,可能会引起新测试的log无法保存。

这里提供一个python脚本,用于对log按创建时间进行排序。因为通常,我们删log也是先删除相对较老的log排完序以后,就可以对log进行删除操作。可以设定一些门限,比如文件大小,当存放log的文件超过一定大小时就启动删除,每删除一个log判断一次文件大小是否小于设定门限,直到小于门限。这样就能控制log存放文件夹的大小并保证每次删除都是先删掉老的log

代码:

import os
import os.path
def swap(target_list):   #sorting folder list according to create time
for i in range(len(target_list)):
if i < (len(target_list)-1) and target_list[i][0] > target_list[i+1][0]:
temp = target_list[i+1]
target_list[i+1] = target_list[i]
target_list[i] = temp
else:
continue
return target_list
if __name__ == '__main__':
dir_log = "D:"
files_with_time = [(os.path.getctime(dir_log + "/" + folder),dir_log + "/" + folder) for folder in os.listdir(dir_log)]
#create a list with 2 elements, one is folder name and the other is create time
print "the orginal filelist is"
print files_with_time
cyc_times = len(files_with_time)
i = 0
while(i < cyc_times): # a cycle to re-arrange folder
i = i + 1
files_with_time = swap(files_with_time)
print "the seq list is"
print files_with_time