Como faço para meu programa Python dormir por 50 milissegundos?
536
from time import sleep
sleep(0.05)
Observe que se você confiar no sono levando exatamente 50 ms, não conseguirá isso. Será apenas sobre isso.
time.sleep(secs)
] dorme pelo menos secs
' desde o Python 3.5, de acordo com a documentação.
import time
time.sleep(50 / 1000)
from __future__ import division
para eliminar essa pegadinha.
também pode usar o pyautogui como
import pyautogui
pyautogui._autoPause(0.05,False)
se first não for None, ele será pausado pelo primeiro arg segundo, neste exemplo: 0,05 seg
se o primeiro for None e o segundo argumento for True, ele será suspenso para a configuração de pausa global definida com
pyautogui.PAUSE = int
Se você está se perguntando o motivo, consulte o código-fonte:
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)
time.sleep
pouco do que isso, mas se você deseja que seu programa seja puro autopygui, isso pode ser uma maneira.
Você também pode fazer isso usando a Timer()
função
Código:
from threading import Timer
def hello():
print("Hello")
t = Timer(0.05, hello)
t.start() # After 0.05 seconds, "Hello" will be printed