我是python的新手,我需要快速帮助解决以下问题。任何帮助或建议都非常感谢。
我有一个python脚本,它从名为XYZ
的目录中清除日志。目录XYZ
具有不同应用程序的子目录,然后是其中的日志。例如:/XYZ/host1/syslog.log
目前,python脚本采用清除日期,并在执行时提供了-p
选项。
我想更改XYZ
下某个特定目录的清除日期,而不更改目录的位置。
有人告诉我这可以通过创建异常2d array
来为主机提供# of days
来完成,如果该主机中没有主机,则从-p
选项中取出清除天数
有人可以帮我创建这个数组。
提前致谢!
答案 0 :(得分:0)
我认为我能想到的最简单的方法是继承自dict:
class PurgeTimes(dict):
def __missing__(self,key):
return default_purge_time #somehow created with -p commandline option
然后,您可以在不同(非默认)时间添加要清除的目录:
purge_times=PurgeTimes()
#If you perfer, you could also use a `defaultdict` to do the same thing
#without subclassing.
#purge_times=collections.defaultdict(lambda : default_purge_time)
purge_times[dir1]=time1
purge_times[dir2]=time2
最后遍历你的目录并清除
for d in directories:
if get_dir_time(d) < purge_time[d]:
purge(d)
* 请在投入生产前进行测试* ; ^)