For循环:如何在100次循环后暂停x秒?

时间:2015-01-04 20:11:45

标签: python

我有以下for loop

for user_id in new_followers:
    try:    
        t.direct_messages.new(user_id=user_id, text="Thanks for following. Etc etc etc")
        print("Sent DM to %d" % (user_id))
        followers_old.add(user_id)

为了避免API限制,我想在每次发送100条直接消息时暂停循环600秒。

最好的方法是什么?

4 个答案:

答案 0 :(得分:3)

你可以试试这个:

for i, user_id in enumerate(new_followers):
    try:    
        t.direct_messages.new(user_id=user_id, text="Thanks for following. Etc etc etc")
        print("Sent DM to %d" % (user_id))
        followers_old.add(user_id)
        if (i+1)%100 == 0:
             time.sleep(x) # here x in milisecond

答案 1 :(得分:1)

你可以这样做:

import time

count = 0

for user_id in new_followers:
    count +=1 
    if count == 100:
        count = 0
        time.sleep(600)
    try:    
        t.direct_messages.new(user_id=user_id, text="Thanks for following. Etc etc etc")
        print("Sent DM to %d" % (user_id))
        followers_old.add(user_id)

答案 2 :(得分:0)

  1. 在循环中使用counter,最多可包含100条消息。
  2. counter == 100时,请使用

    from time import sleep
    sleep(AMOUNT_OF_TIME)
    

答案 3 :(得分:0)

您可以使用:

import time

然后

time.sleep(seconds)
睡觉。您可以使用浮动时间小于一秒钟。

有一点需要注意的是,如果你这样做,人们可能会讨厌你。