Python 프로그램을 50 밀리 초 동안 잠자 게하려면 어떻게해야합니까?


536

Python 프로그램을 50 밀리 초 동안 잠자 게하려면 어떻게해야합니까?

답변:


822
from time import sleep
sleep(0.05)

참고


7
@CsabaToth OS에서 사양에 맞는 Python 구현을 사용하는 한, 위의 OS 독립적입니다.
Chris

83

정확히 50ms의 수면에 의존 하면 얻을 수 없습니다. 그것은 단지 그것에 관한 것입니다.


35
일부 플랫폼에서보다 10 또는 15ms 더 길 수 있으므로 경고하십시오.
Kylotan 2012 년

3
주어진 시스템에서 일관된 지연입니까?
user391339

7
@ user391339 경험상 일관성이 없습니다. 스레드 / 프로세스 우선 순위, CPU로드 평균, 사용 가능한 메모리 및 기타 여러 요인으로 인해 모든 호출이 정확하지 않습니다. 시스템이 바쁠수록 부정확성이 높아집니다.
David

2
설명서에 따르면 파이썬 3.5부터 ' [ time.sleep(secs)] 함수 가 적어도 잠자기 '라는 사실을 아는 것이 흥미로울 수 secs있습니다.
Elias Strehle

67
import time
time.sleep(50 / 1000)

13
from __future__ import division그 문제를 제거하기 위해.
Nick T

1
단위는 밀리 초가 아닌 초 단위입니다.
Nikhil VJ

2

pyautogui를 다음과 같이 사용할 수도 있습니다.

import pyautogui
pyautogui._autoPause(0.05,False)

first가 None이 아닌 경우 첫 번째 arg 초 동안 일시 중지됩니다 (이 예에서는 0.05 초).

first가 None이고 두 번째 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것이 낫지 만, 프로그램을 순수한 오토 피구 이로 만들고 싶다면 이것이 방법이 될 수 있습니다.
okie

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.