Как я могу сделать временную задержку в Python?


Answers

Вы можете использовать функцию sleep () в модуле времени. Он может принимать аргумент float для второго разрешения.

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

Я хотел бы знать, как установить временную задержку в сценарии Python.




Библиотека tkinter в стандартной библиотеке Python представляет собой интерактивный инструмент, который можно импортировать. В принципе, вы можете создавать кнопки и поля, всплывающие окна и прочее, которые отображаются в виде окон, которыми вы управляете с помощью кода.

Если вы используете tkinter, НЕ ИСПОЛЬЗУЙТЕ TIME.SLEEP() потому что это TIME.SLEEP() вашу программу. Это случилось со мной. Вместо этого используйте root.after() и замените значения на сколько секунд, с миллисекундами. Например, time.sleep(1) эквивалентен root.after(1000) в tkinter.

В противном случае, time.sleep() , о чем многие ответы указывают, это путь.




Задержки могут быть реализованы с использованием трех методов.

Начнем с самого простого:

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_time , и мы не хотим беспокоиться о всех last_time , next_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

Вызов регулярного buzzergen

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)

Как мы видим, этот зуммер не слишком жесткий и позволяет нам догнать регулярные сонные интервалы, даже если мы проспали и выбрались из обычного графика.