我如何让我的Python程序睡眠50毫秒?


当前回答

你也可以这样使用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 ()

from time import sleep
sleep(0.05)

使用time . sleep ():

import time
time.sleep(50 / 1000)

请参阅Python文档:https://docs.python.org/library/time.html#time.sleep

有一个叫做“时间”的模块可以帮助你。我知道两种方法:

sleep Sleep (reference) asks the program to wait, and then to do the rest of the code. There are two ways to use 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") The second way doesn't import the whole module, but it just sleep. 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") Using time since Unix time. This way is useful if you need a loop to be running. But this one is slightly more complex. 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

你也可以这样使用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)

你也可以使用Timer()函数来实现。

代码:

from threading import Timer

def hello():
  print("Hello")

t = Timer(0.05, hello)
t.start()  # After 0.05 seconds, "Hello" will be printed