Wie kann ich mein Python-Programm für 50 Millisekunden in den Ruhezustand versetzen?


536

Wie kann ich mein Python-Programm für 50 Millisekunden in den Ruhezustand versetzen?

Antworten:


822
from time import sleep
sleep(0.05)

Referenz


7
@CsabaToth Solange Sie eine Python-Implementierung haben, die den Spezifikationen Ihres Betriebssystems entspricht, ist das oben Genannte betriebssystemunabhängig.
Chris

83

Beachten Sie , dass Sie das nicht bekommen, wenn Sie sich darauf verlassen, dass der Schlaf genau 50 ms dauert . Es wird nur darum gehen.


35
Auf einigen Plattformen kann es 10 oder 15 ms länger sein. Seien Sie also gewarnt.
Kylotan

3
Ist es eine konsistente Verzögerung auf einem bestimmten System?
user391339

7
@ user391339 Aus Erfahrung ist es nicht konsistent. Die Thread- / Prozesspriorität, die durchschnittliche CPU-Auslastung, der verfügbare Speicher und eine Vielzahl anderer Faktoren machen alle Aufrufe ungenau. Je geschäftiger das System ist, desto höher ist die Ungenauigkeit.
David

2
Es könnte jedoch interessant sein zu wissen, dass 'die Funktion [ time.sleep(secs)] mindestens schläft secs' seit Python 3.5 gemäß der Dokumentation.
Elias Strehle

67
import time
time.sleep(50 / 1000)

13
from __future__ import divisionum diese Gotcha zu beseitigen.
Nick T

1
Die Einheiten sind in Sekunden und nicht in Millisekunden angegeben
Nikhil VJ

2

kann auch mit pyautogui als

import pyautogui
pyautogui._autoPause(0.05,False)

Wenn first nicht None ist, wird das erste arg second angehalten, in diesem Beispiel: 0,05 Sek

Wenn das erste None ist und das zweite arg True ist, wird es für die globale Pauseneinstellung, mit der festgelegt wird, in den Ruhezustand versetzt

pyautogui.PAUSE = int

Wenn Sie sich nach dem Grund fragen, lesen Sie den Quellcode:

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
Irgendwie ist es besser, time.sleepdies zu verwenden, aber wenn Sie möchten, dass Ihr Programm ein reines Autopygui ist, kann dies ein Weg sein.
Okie

2

Sie können dies auch mithilfe der Timer()Funktion tun .

Code:

from threading import Timer

def hello():
  print("Hello")

t = Timer(0.05, hello)
t.start()  # After 0.05 seconds, "Hello" will be printed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.