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


536

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

Ответы:


822
from time import sleep
sleep(0.05)

Ссылка


7
@CsabaToth, пока у вас есть реализация Python, соответствующая спецификациям вашей ОС, вышеприведенное не зависит от ОС.
Крис

83

Обратите внимание, что если вы полагаете, что сон занимает ровно 50 мс, вы этого не получите. Это будет просто об этом.


35
Это может быть на 10 или 15 мс дольше, чем на некоторых платформах, поэтому будьте осторожны.
Kylotan

3
Это постоянная задержка в данной системе?
user391339

7
@ user391339 Из опыта это не соответствует. Приоритет потока / процесса, средняя загрузка процессора, доступная память и множество других факторов делают все вызовы неточными. Чем занятее система, тем выше неточность.
Дэвид

2
Может быть интересно узнать, что «функция [ time.sleep(secs)] спит по крайней мере secs », начиная с Python 3.5 в соответствии с документацией.
Элиас


2

может также использовать pyautogui в качестве

import pyautogui
pyautogui._autoPause(0.05,False)

если first не None, то он будет приостановлен на первую секунду arg, в этом примере: 0,05 сек

если first - None, а second arg - True, тогда он будет находиться в спящем режиме для глобальной настройки паузы, которая устанавливается с помощью

pyautogui.PAUSE = int

если вам интересна причина, посмотрите исходный код:

def _autoPause(pause, _pause):
    """If `pause` is not `None`, then sleep for `pause` seconds.
    If `_pause` is `True`, then sleep for `PAUSE` seconds (the global pause setting).

    This function is called at the end of all of PyAutoGUI's mouse and keyboard functions. Normally, `_pause`
    is set to `True` to add a short sleep so that the user can engage the failsafe. By default, this sleep
    is as long as `PAUSE` settings. However, this can be override by setting `pause`, in which case the sleep
    is as long as `pause` seconds.
    """
    if pause is not None:
        time.sleep(pause)
    elif _pause:
        assert isinstance(PAUSE, int) or isinstance(PAUSE, float)
        time.sleep(PAUSE)

1
так или иначе, лучше использовать time.sleepвместо этого, но если вы хотите, чтобы ваша программа была чисто autopygui, то это может быть способом.
Ока

2

Вы также можете сделать это с помощью Timer()функции.

Код:

from threading import Timer

def hello():
  print("Hello")

t = Timer(0.05, hello)
t.start()  # After 0.05 seconds, "Hello" will be printed
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.