delay sleep 精度 - Pythonでどのように時間を遅らせることができますか?





6 Answers

timeモジュールでは、 sleep()関数を使用できます。 サブ秒の解像度のためにfloat引数を取ることができます。

from time import sleep
sleep(0.1) # Time in seconds.
time 割り込み ミリ秒

私はPythonスクリプトで時間を遅らせる方法を知りたいです。




眠いgeneratorで少し楽しい。

問題は時間の遅れです。 一定の時間にすることもできますが、場合によっては前回から測定した遅延が必要な場合もあります。 解決策の1つがあります:

前回以降に測定された遅延(定期的に起きる)

状況は可能な限り定期的に何かをしたいと思っていますし、 last_timenext_timeすべてのコードをすべて気にする必要はありません。

ブザージェネレータ

次のコード( sleepy.py )はbuzzergenジェネレータを定義しbuzzergen

import time
from itertools import count

def buzzergen(period):
    nexttime = time.time() + period
    for i in count():
        now = time.time()
        tosleep = nexttime - now
        if tosleep > 0:
            time.sleep(tosleep)
            nexttime += period
        else:
            nexttime = now + period
        yield i, nexttime

定期的なbuzzergenの呼び出し

from sleepy import buzzergen
import time
buzzer = buzzergen(3) # Planning to wake up each 3 seconds
print time.time()
buzzer.next()
print time.time()
time.sleep(2)
buzzer.next()
print time.time()
time.sleep(5) # Sleeping a bit longer than usually
buzzer.next()
print time.time()
buzzer.next()
print time.time()

それを実行すると、

1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47

ループ内で直接使用することもできます。

import random
for ring in buzzergen(3):
    print "now", time.time()
    print "ring", ring
    time.sleep(random.choice([0, 2, 4, 6]))

それを実行すると、私たちは見えるかもしれません:

now 1400102751.46
ring (0, 1400102754.461676)
now 1400102754.46
ring (1, 1400102757.461676)
now 1400102757.46
ring (2, 1400102760.461676)
now 1400102760.46
ring (3, 1400102763.461676)
now 1400102766.47
ring (4, 1400102769.47115)
now 1400102769.47
ring (5, 1400102772.47115)
now 1400102772.47
ring (6, 1400102775.47115)
now 1400102775.47
ring (7, 1400102778.47115)

このブザーはあまり硬くないので、私たちが寝ていても定期的なスケジュールから抜け出しても、定期的な眠気に追いつくことができます。




Python標準ライブラリのtkinterライブラリは、インポートできるインタラクティブなツールです。 基本的に、ボタンやボックス、ポップアップなどを作成して、コードで操作するウィンドウとして表示することができます。

TIME.SLEEP()を使用している場合は、 TIME.SLEEP()使用しないでください。これは、プログラムがTIME.SLEEP()ないためです。 これは私に起こった。 代わりに、 root.after()を使用して、数秒間、値をミリ秒で置き換えます。 たとえば、 time.sleep(1)root.after(1000)に相当します。

そうでなければ、多くの答えが指摘しているtime.sleep()があります。




3つの方法を使用して遅延を実装できます。

一番簡単なものから始めましょう:

import time
time.sleep(5) # Delay for 5 seconds.

遅延させる2番目の方法は、暗黙的なwaitメソッドを使用することです。

 driver.implicitly_wait(5)

3番目の方法は、特定のアクションが完了するまで、または要素が見つかるまで待つ必要がある場合に、より便利です。

self.wait.until(EC.presence_of_element_located((By.ID, 'UserName'))



Pythonで時間を遅らせる最善の方法は、 timeライブラリを使うことです。 このような:

import time
time.sleep(10)

10を遅延させたい秒数で置き換えてください。 '10 .1 '、' 5.07 'などの形式を使用できます。

Tkinterでこれを使用することは推奨されません




これは時間遅延の簡単な例です:

import time

def delay(period='5'):
    # If the user enters nothing, It'll wait 5 seconds
    try:
        #If the user not enters a int, I'll just return ''
        time.sleep(period)
    except:
        return ''

Tkinterの別のもの:

import tkinter

def tick():
    pass

root=Tk()
delay=100 # time in milliseconds
root.after(delay,tick)
root.mainloop()



Related