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


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




Answers


import time
time.sleep(5)   # delays for 5 seconds. You can Also Use Float Value.

何かが約1分に1回実行される別の例を次に示します。

import time 
while True:
    print("This prints once a minute.")
    time.sleep(60)   # Delay for 1 minute (60 seconds).



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

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



詳細については、 https://web.archive.org/web/20090207081238/http://faqts.com/knowledge_base/view.phtml/aid/2609/fid/378をご覧ください。

時間モジュールでスリープ機能を試してください。

import time
time.sleep(60)

そしてこれをwhileループに入れて、文は分だけ実行されます。これにより、コマンドの所要時間に関係なく、あらかじめ定義された間隔で文を実行することができます(1分または5分または60分または何に設定しても問題ありません)たとえば、1分ごとにpingを実行したいとします。 私がtime.sleep(60)time.sleep(45)も、pingは常に同じ時間を取るわけではありません。 コードは次のとおりです:)

time.sleep(time.localtime(time.time())[5])

[5]は、 time.localtime()の戻り値から数秒間だけtime.localtime()ます。

time.sleepの大きな点は、浮動小数点数をサポートしていることです!

import time
time.sleep(0.1) 

http://python.org/doc/current/lib/module-time.html




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

問題は時間の遅れです。 一定の時間にすることもできますが、場合によっては前回から測定した遅延が必要な場合もあります。 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)

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




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

私はスリープ関数を示唆する一つのスレッドで:

>>> from time import sleep

>>> sleep(4)

これにより、実際にオペレーティングシステムによって呼び出されるスレッドの処理が中断され、スリープ中に他のスレッドやプロセスが実行されるようになります。

その目的のために使用するか、関数の実行を遅らせるだけです。 例えば:

>>> def party_time():
...     print('hooray!')
... 
>>> sleep(3); party_time()
hooray!

「やっぱり! 私がEnterを押してから3秒後に印刷されました。

複数のスレッドとプロセスでsleepを使用する例

再び、 sleepはスレッドを一時停止します。これは、処理能力がゼロになるように使用されます。

説明するには、このようなスクリプトを作成します(私はこれを最初にインタラクティブなPython 3.5シェルで試みましたが、サブプロセスは何らかの理由でparty_later関数を見つけることができません)。

from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
from time import sleep, time

def party_later(kind='', n=''):
    sleep(3)
    return kind + n + ' party time!: ' + __name__

def main():
    with ProcessPoolExecutor() as proc_executor:
        with ThreadPoolExecutor() as thread_executor:
            start_time = time()
            proc_future1 = proc_executor.submit(party_later, kind='proc', n='1')
            proc_future2 = proc_executor.submit(party_later, kind='proc', n='2')
            thread_future1 = thread_executor.submit(party_later, kind='thread', n='1')
            thread_future2 = thread_executor.submit(party_later, kind='thread', n='2')
            for f in as_completed([
              proc_future1, proc_future2, thread_future1, thread_future2,]):
                print(f.result())
            end_time = time()
    print('total time to execute four 3-sec functions:', end_time - start_time)

if __name__ == '__main__':
    main()

このスクリプトの出力例

thread1 party time!: __main__
thread2 party time!: __main__
proc1 party time!: __mp_main__
proc2 party time!: __mp_main__
total time to execute four 3-sec functions: 3.4519670009613037

マルチスレッド

後でTimerスレッドオブジェクトを使用して別のスレッドで呼び出される関数をトリガすることができます。

>>> from threading import Timer
>>> t = Timer(3, party_time, args=None, kwargs=None)
>>> t.start()
>>>
>>> hooray!

>>> 

空白行は、私の標準に印刷された関数を示しています。私はプロンプトを確認するためにEnterを押してください。

この方法の利点は、 Timerスレッドが待機している間に、関数が実行される前にEnterキーを 1回押すことができたことです(最初の空のプロンプトを参照)。

マルチプロセッシングライブラリにはそれぞれのオブジェクトがありません。 作成することはできますが、理由のために存在しない可能性があります。 サブスレッドは、全く新しいサブプロセスよりも単純なタイマーにはもっと意味があります。




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

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

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




時間遅延を入れるには、 timeモジュールをインポートする必要があります。 そのモジュールでは、次のように書くだけです。

time.sleep(The amount of time)

たとえば、コンピュータが別の行を実行する前に1秒間の時間遅延を設定する場合は、次のように入力する必要があります。

time.sleep(1)
print('Hello World!')

それで全部です :)




良い質問。

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

from time import sleep

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

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




遅延はタイムライブラリ 、特にtime.sleep()関数で行われます...

それをちょっと待つようにするには:

from time import sleep
sleep(1)

これは、以下のことによって機能します。

from time import sleep

タイムライブラリからの スリープ関数を抽出します 。つまり、次のように呼び出すことができます。

sleep(seconds)

入力する必要はありません。

time.sleep()

それは入力するのが厄介です。

この方法では、 タイムライブラリの他の機能にアクセスすることができず、sleepと呼ばれる変数を持つことはできません。 timeという変数を作成することもできます。

[library] import [function](、[function2])から行うのは、モジュールの特定の部分だけを必要とする場合に最適です。

それと同じようにそれを行うことができます:

import time
time.sleep(1)

時間を入力する限りtime.clock()のようなタイムライブラリの他の機能にアクセスすることができます 可変時間を作成することはできませんでした。




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'))



pygameを使う

import pygame
pygame.init()
while True:
    pygame.time.wait(1000)
    print("This prints every second.")
    print("Please note that this method uses milliseconds.")