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では1時間ごとに特定の数のリクエストしか実行できません。ですから、私の間違いを素朴なものと見なす可能性のある人は、それを指摘するか、continueステートメントを使用せずに別の実装を提供してください。

ところで、別の投稿で提案されているように、タブとスペースが混在していません。よろしくお願いします。

4

2 に答える 2

33

continueforまたはwhileループ内でのみ許可されます。有効なリクエストまでループするように関数を簡単に再構築できます。

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は、構文的にforループまたはwhileループにネストされている場合にのみ発生しますが、関数またはクラス定義、あるいはそのループ内のfinallyステートメントにネストされていません。6.1最も近い囲んでいるループの次のサイクルに進みます。

于 2013-01-14T03:12:51.620 に答える