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

kyr*_*nia 0 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
Run Code Online (Sandbox Code Playgroud)

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

虽然有很多类似的声音标题帖子(例如如何在python中重启"for"循环? ,Python - 重启for循环的方法,类似于while循环的"continue",python:重启循环 )每个我发现/读取的东西似乎得到了不同的东西(例如,当到达结束时如何重新启动,而不是在某种情况发生时重新启动迭代).

[Python 2.7]

Ara*_*Fey 7

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

for row in r:
   while True:
       do stuff
       if error:
           continue
       else:
           break
Run Code Online (Sandbox Code Playgroud)

  • 它不应该推进外循环.OP正在联系服务器 - 如果出现网络错误,则必须再次联系服务器. (2认同)