Как мне заставить мою программу Python спать на 50 миллисекунд?
Как мне заставить мою программу Python спать на 50 миллисекунд?
Ответы (6)
Используйте time.sleep()
.
from time import sleep
sleep(0.05)
Обратите внимание: если вы рассчитываете, что сон займет ровно 50 мс, вы этого не получите. Это как раз об этом.
time.sleep(secs)
] спит по крайней мере secs
», начиная с Python 3.5, согласно документации.
- person Elias Strehle; 30.10.2019
Используйте 1_:
import time
time.sleep(50 / 1000)
См. Документацию Python: https://docs.python.org/library/time.html#time.sleep
Есть модуль под названием «время», который может вам помочь. Я знаю два пути:
sleep
Сон (ссылка) просит программу подождать, а затем выполнить остальная часть кода.
Есть два способа использовать сон:
import time # Import whole time module print("0.00 seconds") time.sleep(0.05) # 50 milliseconds... make sure you put time. if you import time! print("0.05 seconds")
Второй способ не импортирует весь модуль, а просто спит.
from time import sleep # Just the sleep function from module time print("0.00 sec") sleep(0.05) # Don't put time. this time, as it will be confused. You did # not import the whole module print("0.05 sec")
Используется время, прошедшее с времени Unix.
Этот способ полезен, если вам нужно запустить цикл. Но этот немного сложнее.
time_not_passed = True from time import time # You can import the whole module like last time. Just don't forget the time. before to signal it. init_time = time() # Or time.time() if whole module imported print("0.00 secs") while True: # Init loop if init_time + 0.05 <= time() and time_not_passed: # Time not passed variable is important as we want this to run once. !!! time.time() if whole module imported :O print("0.05 secs") time_not_passed = False
Вы также можете сделать это с помощью функции Timer()
.
Код:
from threading import Timer
def hello():
print("Hello")
t = Timer(0.05, hello)
t.start() # After 0.05 seconds, "Hello" will be printed
Вы также можете использовать pyautogui как:
import pyautogui
pyautogui._autoPause(0.05, False)
Если первый аргумент не равен None, тогда он будет приостановлен на секунды первого аргумента, в этом примере: 0,05 секунды.
Если первый аргумент - None, а второй аргумент - 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)
time.sleep
, чем this, но если вы хотите, чтобы ваша программа была чистой autopygui, тогда это может быть выходом.
- person okie; 15.09.2019