在python中重新启动for循环的迭代

时间:2015-01-15 17:15:38

标签: python python-2.7

如果我收到异常,我正在寻找重启迭代。 (...它正在从服务器读取数据,偶尔会出现间歇性的错误代码,在重试时不会重复)。

 with open(input, 'rb') as f:
     r = unicodecsv.reader(f)

 for row in r:

    code to request some data from server

    if response_code == 200:
       code to process response
    else:
       want to restart the iteration for the current row

如果我使用while循环,这种事情显然是显而易见的(例如,不要增加数字),但鉴于我在for循环中迭代行,不能想到一种强制重新执行当前迭代的方法。

虽然有很多类似的标题帖子(例如how to restart "for" loop in python ?Python - Way to restart a for loop, similar to "continue" for while loops?python: restarting a loop),但我找到/读过的每个帖子似乎都有不同之处(例如,如何在结束时重新启动,而不是在某种情况发生时重新启动迭代)。

[Python 2.7]

1 个答案:

答案 0 :(得分:7)

您可以像这样添加第二个循环:

for row in r:
   while True:
       do stuff
       if error:
           continue
       else:
           break