1

重複の可能性:
Pythonでx秒ごとに関数を繰り返し実行するための最良の方法は何ですか?

こんにちは、これが私が持っているコードです:

client = myclient(info1,info2)
                sellor()
                Contractor()

それは完璧に機能しますが、私がやりたいのは、Pythonにそのコードを60秒ごとに無期限に起動させることです...タイムループと一緒にコードをまとめる方法が実際にはわかりません助けていただければ幸いですありがとうございます

4

6 に答える 6

4

60 秒がコードの実行にかかる時間を無視する場合):

from time import sleep

while True:
    sleep(60)
    # your code here

ただし、コードの実行にかかる時間を 60 秒に考慮すると、次のようになります。

from time import sleep
from os import fork       
while True:
    sleep(60)
    fork() # create child process
    # your code here
于 2012-12-10T13:08:13.513 に答える
2

sleepメソッドを使用します。ループ (while、for など) を作成し、反復ごとに 60 秒間スリープします。

于 2012-12-10T13:07:36.567 に答える
1
import time

while True:

  client = myclient(info1,info2)
            sellor()
            Contractor()
            time.sleep(10)

それがうまくいくことを願っています、すべての最高の仲間

于 2012-12-10T13:10:32.807 に答える
0

また、Windows スケジューラを使用してタスクをスケジュールすることも考えられます。ここでの利点は、一度実行されたスクリプトを終了し、スケジュールされた間隔の後にスクリプトを再度実行することです。2 番目のアプローチでは、スクリプト インスタンス プロセスが継続的に実行され、sleep 関数のみを使用して、指定された時間何もしないように見えます。スクリプトが失敗した場合は、スクリプトを再起動するためにチェックを維持する必要がある場合があります。スケジュールされたアクティビティとして、スクリプトは指定された間隔で実行されます。

また、Python スクリプトを実行するためにプロセス スレッドを実行し続けたくない場合もあります。私はこれについて調査しますが、その間に他の人々から話を聞くことができるかもしれません.

よろしく、ハーシャル

于 2012-12-10T13:46:41.937 に答える
0
import time

repeat_time = 3.0

while True:
    start_time = time.time()

    # Your code goes here

    time.sleep(max(repeat_time - (time.time() - start_time), 0.0))

そして、コードは「repeat_time」ごとに正確に実行されます

于 2012-12-10T13:28:59.950 に答える
0

すでに述べたように、スリープを使用できます。ただし、独自の関数の実行に必要な時間はさまざまであるため、関数が 60 秒ごとに実行されるとは限りません。

関数の開始間隔を 60 秒に近づけることが重要な場合は、time を使用できます。私はこれを試していませんが、次のようなものです

import time

while True:
    # Get the current time 
    startTime = time.time()

    # Your functions
    client = myclient(info1,info2)
    sellor()
    Contractor()

    delay = True
    while delay:
        if time.time() - startTime > 60:
            delay = False # Break the delay
于 2012-12-10T13:31:44.720 に答える