【发布时间】:2015-08-18 06:57:04
【问题描述】:
我正在尝试制作一个 python 脚本(无限循环),使其每天从上午 9 点工作到 23 点左右,并且一遍又一遍地工作。我做了一些研究,最后想出了这段代码:
while True:
if dt.now().hour in range(9, 23):
if __name__ == "__main__":
""" Not important """
while True:
try:
""" bet_automation contains all the necessary code """
bet_automation()
except Exception as ex:
""" Catch all the error of bet_automation() and restart program """
print_error(ex)
time.sleep(5)
if not isinstance(ex, LoginTimeoutException):
try:
driver = get_driver()
filename = str(time.time())
driver.get_screenshot_as_file("errors/{}.png".format(filename))
with io.open("errors/{}.html".format(filename)) as f:
f.write(unicode(driver.page_source))
except:
pass
try:
quit_driver()
except:
pass
else:
sys.exit(0)
这样,脚本可以在 20:00 开始并正常运行。即使我早一点运行它,它也只是在 20.00 开始工作,这很好,但它并没有在 21 结束,这令人困惑。
我很清楚这可能是一个超级简单和愚蠢的问题,但正如我所说,我是终极初学者。我有这个脚本由“专业”程序员编写,我正在尝试编辑和改进它,我想自己做以了解整个过程。
高度赞赏每一个见解,
非常感谢,
:)
【问题讨论】:
-
无限循环嵌套在另一个无限循环中?听起来很危险
-
您的代码显示为 9:00 -> 23:00,但您的描述中提到了 20:00 和 21:00。它是哪一个?还是我看错了?
-
这可能是一个有趣的问题...但是您确实意识到按计划运行脚本通常由操作系统处理,对吗?
-
看 Cron 或 Celery