如何创建二维数组以从程序中排除某些目录

时间:2012-07-11 19:05:40

标签: python

我是python的新手,我需要快速帮助解决以下问题。任何帮助或建议都非常感谢。

我有一个python脚本,它从名为XYZ的目录中清除日志。目录XYZ具有不同应用程序的子目录,然后是其中的日志。例如:/XYZ/host1/syslog.log 目前,python脚本采用清除日期,并在执行时提供了-p选项。

我想更改XYZ下某个特定目录的清除日期,而不更改目录的位置。 有人告诉我这可以通过创建异常2d array来为主机提供# of days来完成,如果该主机中没有主机,则从-p选项中取出清除天数

有人可以帮我创建这个数组。

提前致谢!

1 个答案:

答案 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)

* 请在投入生产前进行测试* ; ^)