19

我已经为这个错误苦苦挣扎了一段时间,对于口译员为什么抱怨“继续”似乎有不同的看法。所以我想在下面提供错误的代码。

import tweepy
import time
def writeHandlesToFile():
    file = open("dataFile.txt","w")
    try:
        list = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
        print "cursor executed"
        for item in list:
            file.write(item.screen_name+"\n")
    except tweepy.error.TweepError as e:
        print "In the except method"
        print e
        time.sleep(3600)
        continue

我之所以特别在最后包含 continue 是因为我希望程序从睡眠后停止的位置重新开始执行,以保持程序状态。我需要睡眠以遵守 twitter api 速率限制,其中 api 仅允许您每小时发出一定数量的请求。因此,任何可能认为我的错误幼稚或以其他方式出现的人,请务必指出,或者请在不使用 continue 语句的情况下为我提供替代实现。

顺便说一句,我没有像另一篇文章中建议的那样混合制表符和空格。提前谢谢你的帮助。

4

2 回答 2

33

continue只允许在fororwhile循环内。您可以轻松地重组函数以循环直到有效请求。

def writeHandlesToFile():
    while True:
        with open("dataFile.txt","w") as f:
            try:
                lst = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
                print "cursor executed"
                for item in lst:
                    f.write(item.screen_name+"\n")
                break
            except tweepy.error.TweepError as e:
                print "In the except method"
                print e
                time.sleep(3600)
于 2013-01-14T03:13:31.927 回答
4

问题可能出在您使用continue的方式上

continue 只能在语法上嵌套在 for 或 while 循环中,但不能嵌套在该循环内的函数或类定义或 finally 语句中。6.1它继续最近的封闭循环的下一个循环。

于 2013-01-14T03:12:51.620 回答