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

Ответы:

822
from time import sleep
sleep(0.05)

Ссылка

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

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

ya23
источник
35
Это может быть на 10 или 15 мс дольше, чем на некоторых платформах, поэтому будьте осторожны.
Kylotan
3
Это постоянная задержка в данной системе?
user391339
7
@ user391339 Из опыта это не соответствует. Приоритет потока / процесса, средняя загрузка процессора, доступная память и множество других факторов делают все вызовы неточными. Чем занятее система, тем выше неточность.
Дэвид
2
Может быть интересно узнать, что «функция [ time.sleep(secs)] спит по крайней мере secs », начиная с Python 3.5 в соответствии с документацией.
Элиас
67
import time
time.sleep(50 / 1000)
Дэн Олсон
источник
13
from __future__ import divisionчтобы устранить эту ошибку.
Ник Т
1
единицы в секундах, а не в миллисекундах
Nikhil VJ
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
anms_pro
источник