如果满足条件,发送电子邮件,然后睡一小时

时间:2014-09-22 15:14:59

标签: python email sleep wait

我有一个脚本,如果我在网络设备上看到政策地图上的数字增加,就会向我发送电子邮件。

这适合我。但是我现在需要它在发现超出时发送电子邮件给我(没问题,可以每分钟运行一次cron作业) - 但是当它确实看到超出时,我需要脚本运行一小时后才能运行我不会被邮件淹没。所以我想要的是脚本每隔一分钟检查一次网络设备,但是只要它看到超出,就停止运行。

无法想到我(初学者)的头脑如何解决这个问题。

我的代码通过pexpect从网络设备中提取统计信息并将其转储到1.txt。然后我通过正则表达式删除我需要的东西,然后与之前的运行进行比较。我知道这不优雅,但我是初学者......

我删除了一堆代码,但这里是它的关键。 2.txt和3.txt包含数字 - 如果新数字更高,则会通过电子邮件发送给我。

getexceeds = open("1.txt", "r").readlines()[12]
output = re.findall(r"\d+", getexceeds)[1]
with open("2.txt", "w") as outp:
    outp.write(output)

newnumber = open("2.txt", "r").readlines()[0]
oldnumber = open("3.txt", "r").readlines()[0]

if oldnumber < newnumber:
    send_email()
else:
    print "same"

src_file = "2.txt"
dst_file = "3.txt"
shutil.copy(src_file, dst_file)

感谢您在这里提供的任何帮助,我仍然会围绕编写脚本并感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

可能的解决方案是使用时间库。这允许你随着时间做很多不同的事情,例如:

time.sleep(secs)

关于这一点的文章可以找到here(好吧,几句话),但实质上它只是暂停程序给定的秒数。考虑到一小时内有3600秒,只需:

time.sleep(3600)

注意:这会暂停程序60分钟,这意味着在此期间您将无法运行任何代码。