1

所以我有一个脚本可以检查 1 天以前的文件。如果此目录中没有不到一天的文件(例如今天创建的文件),我希望我的脚本向我发送一封电子邮件。

我的脚本,让我给你看:

new_files = [] #list of files newer than 1 day
for f in os.listdir(path):
 fn = os.path.join(path,f)
 ctime = os.stat(fn).st_ctime
 if ctime > now - 1 * 86400:
 #this is a new file
  new_files.append(fn)
 if new_files(): #checks the list
  sendmail #calls sendmail script that sends email

那么,if new_files():我是否正在检查我的列表以查看是否附加了任何内容。如果不是,则该过程失败,我们需要通过向我们的票务系统生成警报电子邮件来了解。这就是我的问题所在。我不知道如何查看列表。当我运行脚本时,我得到TypeError: 'list' object is not callable.

这样做的正确方法是什么?

4

2 回答 2

1

引用 PEP 8

对于序列(字符串、列表、元组),使用空序列为假的事实。

Yes: if not seq:
     if seq:

No: if len(seq)
    if not len(seq)

对于您的代码:

if new_files:
于 2012-10-02T21:04:38.050 回答
0

计算出现次数会有所帮助。

new_files = [] #list of files newer than 1 day
for f in os.listdir(path):
   fn = os.path.join(path,f)
   ctime = os.stat(fn).st_ctime
   if ctime > now - 1 * 86400:
        countit=new_files.count(fn)  #count previous occurence
        #this is a new file
        new_files.append(fn)
        if new_files.count(fn)>countit: 
             sendmail #calls sendmail script that sends email
于 2012-10-02T21:03:12.203 回答