我怎樣才能在Python中延遲時間?


Answers

您可以在時間模塊中使用sleep()函數。 對於第二個分辨率,它可以採用浮點型參數。

from time import sleep
sleep(0.1) # Time in seconds.
Question

我想知道如何在Python腳本中放一段時間。




延遲可以通過使用三種方法來實現。

讓我們從最簡單的一個開始:

import time
time.sleep(5) #delay for 5 seconds.

第二種延遲方法是使用隱式等待方法。

 driver.implicitly_wait(5)

第三種方法更有用,當你必須等待某個特定的動作完成或者直到找到一個元素。

self.wait.until(EC.presence_of_element_located((By.ID, 'UserName'))



好問題。

你可以通過簡單的做到這一點:

from time import sleep

# doing stuff
sleep(0.5) # sleeping half a second (sleep() uses seconds, but you can also use floats)
# doing stuff..

希望,我可以幫忙。




昏昏欲睡的發電機有點兒樂趣

問題是關於時間延遲。 它可以是固定的時間,但在某些情況下,我們可能需要從上次測量的延遲。 這是一個可能的解決方案:

自上次測量延遲(定期醒來)

情況可能是,我們希望盡可能經常做一些事情,而且我們不想在所有代碼周圍都用last_timenext_time

蜂鳴器發生器

以下代碼( sleepy.py )定義了buzzergen gerenarator

import time
from itertools import count

def buzzergen(period):
    nexttime = time.time() + period
    for i in count():
        now = time.time()
        tosleep = nexttime - now
        if tosleep > 0:
            time.sleep(tosleep)
            nexttime += period
        else:
            nexttime = now + period
        yield i, nexttime

調用常規蜂鳴器

from sleepy import buzzergen
import time
buzzer = buzzergen(3) # planning to wake up each 3 seconds
print time.time()
buzzer.next()
print time.time()
time.sleep(2)
buzzer.next()
print time.time()
time.sleep(5) # sleeping a bit longer than usually
buzzer.next()
print time.time()
buzzer.next()
print time.time()

並運行它我們看到:

1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47

我們也可以直接在循環中使用它:

import random
for ring in buzzergen(3):
    print "now", time.time()
    print "ring", ring
    time.sleep(random.choice([0, 2, 4, 6]))

並運行它我們可能會看到:

now 1400102751.46
ring (0, 1400102754.461676)
now 1400102754.46
ring (1, 1400102757.461676)
now 1400102757.46
ring (2, 1400102760.461676)
now 1400102760.46
ring (3, 1400102763.461676)
now 1400102766.47
ring (4, 1400102769.47115)
now 1400102769.47
ring (5, 1400102772.47115)
now 1400102772.47
ring (6, 1400102775.47115)
now 1400102775.47
ring (7, 1400102778.47115)

正如我們所看到的那樣,這個蜂鳴器不是太僵化,即使我們睡過頭了,也沒有經常的時間安排,我們可以趕上定期的睡眠時間間隔。




Python標準庫中的tkinter庫是一個可導入的交互式工具。 基本上,您可以創建按鈕,框和彈出窗口,以及用代碼操作的窗口。

如果你使用TIME.SLEEP() ,不要使用TIME.SLEEP()因為它會把你的程序TIME.SLEEP() 。 這發生在我身上。 相反,請使用root.after()然後用毫秒代替數秒的值。 例如, root.after(1000) time.sleep(1)等同於root.after(1000)

否則, time.sleep() ,許多答案指出,這是要走的路。




Links