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



Answers

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

from time import sleep
sleep(0.1) # Time in seconds.
Question

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




眠いジェネレーターで少し楽しい。

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

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

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

ブザー発生器

次のコード( sleepy.py )はbuzzergen gerenaratorを定義します

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)

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




良い質問。

あなたはこれを単に行うことによってそれを得ることができます:

from time import sleep

# doing stuff
sleep(0.5) # sleeping half a second (sleep() uses seconds, but you can also use floats)
# doing stuff..

希望、私は助けることができます。




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

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

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




Related