@CsabaToth tak długo, jak masz implementację Python, która jest zgodna ze specyfikacją w twoim systemie operacyjnym, powyższe jest niezależne od systemu operacyjnego.
Chris
83
Pamiętaj, że jeśli polegasz na śnie trwającym dokładnie 50 ms, nie dostaniesz tego. Chodzi o to.
Może to być 10 lub 15 ms dłużej niż na niektórych platformach, więc ostrzegamy.
Kylotan
3
Czy jest to spójne opóźnienie w danym systemie?
user391339,
7
@ user391339 Z doświadczenia nie jest spójny. Priorytet wątku / procesu, średnie obciążenie procesora, dostępna pamięć i mnóstwo innych czynników sprawiają, że wszystkie połączenia są nieprecyzyjne. Im bardziej zajęty jest system, tym większa jest niedokładność.
David
2
Być może warto wiedzieć, że „funkcja [ time.sleep(secs)] śpi przynajmniejsecs ” od Python 3.5 zgodnie z dokumentacją.
from __future__ import divisionaby wyeliminować tę gotcha.
Nick T
1
jednostki są w sekundach, a nie milisekundach
Nikhil VJ
2
może również używać pyautogui jako
import pyautogui
pyautogui._autoPause(0.05,False)
jeśli pierwszy nie jest żaden, to zatrzyma się na pierwszy arg drugi, w tym przykładzie: 0,05 sek
jeśli pierwszy to None, a drugi argument to True, to przejdzie w tryb uśpienia w celu ustawienia globalnej pauzy, która jest ustawiona za pomocą
pyautogui.PAUSE = int
jeśli zastanawiasz się nad przyczyną, zobacz kod źródłowy:
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)
Pamiętaj, że jeśli polegasz na śnie trwającym dokładnie 50 ms, nie dostaniesz tego. Chodzi o to.
źródło
time.sleep(secs)
] śpi przynajmniejsecs
” od Python 3.5 zgodnie z dokumentacją.źródło
from __future__ import division
aby wyeliminować tę gotcha.może również używać pyautogui jako
jeśli pierwszy nie jest żaden, to zatrzyma się na pierwszy arg drugi, w tym przykładzie: 0,05 sek
jeśli pierwszy to None, a drugi argument to True, to przejdzie w tryb uśpienia w celu ustawienia globalnej pauzy, która jest ustawiona za pomocą
jeśli zastanawiasz się nad przyczyną, zobacz kod źródłowy:
źródło
time.sleep
tego niż tego, ale jeśli chcesz, aby Twój program był czystym autopygui, może to być sposób.Możesz to również zrobić za pomocą
Timer()
funkcji.Kod:
źródło