重试脚本/程序在python中记住变量值的地方

时间:2016-03-08 22:51:29

标签: python python-2.7 error-handling

我希望我的脚本在发生错误时重新尝试它停止的位置。我正在使用selenium下载多个报告。偶尔报告无法正确加载。我希望脚本在出错时记住它的位置并重新尝试提取报告。 (我需要脚本来记住x的值。)

以下是一些可能有用的代码......(我非常需要帮助)

-------------------------------
Ember             : 2.4.1
Ember Data        : 2.4.0+9f8c40927a
jQuery            : 1.11.3
Ember Simple Auth : 1.0.0
-------------------------------

2 个答案:

答案 0 :(得分:1)

你在这里做的是迭代超过50个x的值,一旦一次访问失败,你就会递归地再次开始迭代所有50个值。重复逻辑应该看起来像这样:

for x in range(1, 51):
    while True:  # or some condition to put a bound on retries
        try:
            ...
        except:
            continue
        else:
            break
therest()

这样,您可以在循环内捕获50个值内的每个异常,并在运行的迭代中执行重试,因此记住x的当前值将成为非问题。请注意elsetry语句的使用:如果没有发生异常,则执行else子句;这是当您想要停止使用当前值x重试时。

答案 1 :(得分:0)

您可以将x的当前值写入当前目录中的文件,然后在脚本完成时删除该文件。当脚本启动时,如果文件仍然存在,那么您知道存在错误,因为文件未被删除。所以,读取文件以获取x并从那里开始。

但总的来说,一个更好的解决方案是构建您的程序,以便while True循环高于for x in range循环,因此打破一个报告将自然地继续下一个报告,而不是跳过所有剩余的。