Bagaimana cara mendapatkan program Python saya untuk tidur selama 50 milidetik?


536

Bagaimana cara mendapatkan program Python saya untuk tidur selama 50 milidetik?

Jawaban:


822
from time import sleep
sleep(0.05)

Referensi


7
@CsabaToth selama Anda memiliki implementasi Python yang sesuai dengan spesifikasi pada OS Anda, di atas adalah OS independen.
Chris

83

Perhatikan bahwa jika Anda mengandalkan tidur yang mengambil tepat 50 ms, Anda tidak akan mendapatkannya. Itu hanya tentang hal itu.


35
Mungkin 10 atau 15 ms lebih lama dari itu pada beberapa platform, jadi berhati-hatilah.
Kylotan

3
Apakah ini merupakan penundaan yang konsisten pada sistem yang diberikan?
user391339

7
@ user391339 Dari pengalaman tidak konsisten. Utas / prioritas proses, rata-rata beban CPU, memori yang tersedia, dan sejumlah faktor lainnya membuat semua panggilan tidak tepat. Semakin sibuk sistemnya, semakin tinggi ketidaktepatannya.
David

2
Mungkin menarik untuk mengetahui bahwa 'fungsi [ time.sleep(secs)] tidur setidaknya secs ' sejak Python 3.5 menurut dokumentasi.
Elias Strehle

67
import time
time.sleep(50 / 1000)

13
from __future__ import divisionuntuk menghilangkan gotcha itu.
Nick T

1
unit dalam hitungan detik, bukan milidetik
Nikhil VJ

2

juga dapat menggunakan pyautogui sebagai

import pyautogui
pyautogui._autoPause(0.05,False)

jika yang pertama bukan Tidak ada, maka akan berhenti sebentar untuk arg pertama kedua, dalam contoh ini: 0,05 dtk

jika pertama adalah Tidak Ada, dan arg kedua adalah Benar, maka itu akan tidur untuk pengaturan jeda global yang diatur dengan

pyautogui.PAUSE = int

jika Anda bertanya-tanya alasannya, lihat kode sumber:

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
entah bagaimana, lebih baik menggunakan time.sleepdaripada ini, tetapi jika Anda ingin program Anda menjadi autopygui murni, maka ini bisa menjadi caranya.
okie

2

Anda juga dapat melakukannya dengan menggunakan Timer()fungsi.

Kode:

from threading import Timer

def hello():
  print("Hello")

t = Timer(0.05, hello)
t.start()  # After 0.05 seconds, "Hello" will be printed
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.