@CsabaToth tant que vous avez une implémentation Python conforme aux spécifications de votre système d'exploitation, ce qui précède est indépendant du système d'exploitation.
Chris
83
Notez que si vous comptez sur un sommeil prenant exactement 50 ms, vous n'obtiendrez pas cela. Ce sera juste à ce sujet.
Il peut être 10 ou 15 ms plus long que celui sur certaines plates-formes, alors soyez averti.
Kylotan
3
S'agit-il d'un retard constant sur un système donné?
user391339
7
@ user391339 Par expérience, ce n'est pas cohérent. La priorité des threads / processus, la charge moyenne du processeur, la mémoire disponible et une pléthore d'autres facteurs rendent tous les appels imprécis. Plus le système est occupé, plus l'imprécision est élevée.
David
2
Peut être intéressant de savoir cependant que «la fonction [ time.sleep(secs)] dort au moinssecs » depuis Python 3.5 selon la documentation.
from __future__ import divisionpour éliminer ce piège.
Nick T
1
les unités sont en secondes, pas en millisecondes
Nikhil VJ
2
peut également utiliser pyautogui comme
import pyautogui
pyautogui._autoPause(0.05,False)
si le premier n'est pas None, alors il s'arrêtera pour le premier arg deuxième, dans cet exemple: 0,05 sec
si le premier est Aucun, et le deuxième argument est Vrai, alors il dormira pour le paramètre de pause globale qui est défini avec
pyautogui.PAUSE = int
si vous vous demandez la raison, consultez le code source:
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 isnotNone:
time.sleep(pause)elif _pause:assert isinstance(PAUSE, int)or isinstance(PAUSE, float)
time.sleep(PAUSE)
en quelque sorte, il vaut mieux utiliser time.sleepplutôt que cela, mais si vous voulez que votre programme soit pur autopygui, alors cela peut être un moyen.
okie
2
Vous pouvez également le faire en utilisant la Timer()fonction.
Code:
from threading importTimerdef hello():print("Hello")
t =Timer(0.05, hello)
t.start()# After 0.05 seconds, "Hello" will be printed
Notez que si vous comptez sur un sommeil prenant exactement 50 ms, vous n'obtiendrez pas cela. Ce sera juste à ce sujet.
la source
time.sleep(secs)
] dort au moinssecs
» depuis Python 3.5 selon la documentation.la source
from __future__ import division
pour éliminer ce piège.peut également utiliser pyautogui comme
si le premier n'est pas None, alors il s'arrêtera pour le premier arg deuxième, dans cet exemple: 0,05 sec
si le premier est Aucun, et le deuxième argument est Vrai, alors il dormira pour le paramètre de pause globale qui est défini avec
si vous vous demandez la raison, consultez le code source:
la source
time.sleep
plutôt que cela, mais si vous voulez que votre programme soit pur autopygui, alors cela peut être un moyen.Vous pouvez également le faire en utilisant la
Timer()
fonction.Code:
la source