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.