Python programımı 50 milisaniye boyunca nasıl uykuya alabilirim?


536

Python programımı 50 milisaniye boyunca nasıl uykuya alabilirim?

Yanıtlar:


822
from time import sleep
sleep(0.05)

Referans


7
@CsabaToth, işletim sisteminizde belirtilen Python uygulamasına sahip olduğunuz sürece, yukarıdaki işletim sisteminden bağımsızdır.
Chris

83

Tam olarak 50 ms süren uykuya güvenirseniz, bunu elde edemeyeceğinizi unutmayın. Sadece bununla ilgili olacak.


35
Bazı platformlardakinden 10 veya 15ms daha uzun olabilir, bu yüzden uyarılmalıdır.
Kylotan

3
Belirli bir sistemde tutarlı bir gecikme var mı?
user391339

7
@ user391339 Deneyimden tutarlı değil. İş parçacığı / işlem önceliği, CPU yükü ortalama, kullanılabilir bellek ve diğer birçok faktör, tüm çağrıları kesin hale getirir. Sistem ne kadar yoğunsa, kesinsizlik o kadar yüksek olur.
David

2
Belgelere göre Python 3.5'ten bu yana ' işlev [ time.sleep(secs)] en az uyur ' olduğunu bilmek ilginç olabilir secs.
Elias Strehle

67
import time
time.sleep(50 / 1000)

13
from __future__ import divisionbu sorunu ortadan kaldırmak için.
Nick T

1
birimler milisaniye değil, saniyeler içinde
Nikhil VJ

2

Ayrıca pyautogui kullanarak

import pyautogui
pyautogui._autoPause(0.05,False)

ilk olarak Hiçbiri değilse, bu durumda ilk arg ikinci için duracaktır, 0.05 saniye

ilki Yok ise ve ikinci arg Doğru ise, o zaman ile ayarlanan global duraklama ayarı için uyur

pyautogui.PAUSE = int

sebebini merak ediyorsanız kaynak koduna bakın:

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
bir şekilde, bunun time.sleepyerine kullanmak daha iyidir , ancak programınızın saf autopygui olmasını istiyorsanız, bu bir yol olabilir.
Okie

2

Timer()Fonksiyonu kullanarak da yapabilirsiniz .

Kod:

from threading import Timer

def hello():
  print("Hello")

t = Timer(0.05, hello)
t.start()  # After 0.05 seconds, "Hello" will be printed
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.