我怎样才能在Python中延迟时间?


Answers

您可以在时间模块中使用sleep()函数。 对于第二个分辨率,它可以采用浮点型参数。

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

我想知道如何在Python脚本中放一段时间。




Python标准库中的tkinter库是一个可导入的交互式工具。 基本上,您可以创建按钮,框和弹出窗口,以及用代码操作的窗口。

如果你使用TIME.SLEEP() ,不要使用TIME.SLEEP()因为它会把你的程序TIME.SLEEP() 。 这发生在我身上。 相反,请使用root.after()然后用毫秒代替数秒的值。 例如, root.after(1000) time.sleep(1)等同于root.after(1000)

否则, time.sleep() ,许多答案指出,这是要走的路。




好问题。

你可以通过简单的做到这一点:

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)

正如我们所看到的那样,这个蜂鸣器不是太僵化,即使我们睡过头了,也没有经常的时间安排,我们可以赶上定期的睡眠时间间隔。




延迟可以通过使用三种方法来实现。

让我们从最简单的一个开始:

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

第二种延迟方法是使用隐式等待方法。

 driver.implicitly_wait(5)

第三种方法更有用,当你必须等待某个特定的动作完成或者直到找到一个元素。

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