2009-07-23 4 views
1

確かにこれを行うより良い方法がありますが、私はかなり初心者ですので、私がそれを理解する唯一の方法でした。事は、私はRSSフィードからの最新の投稿でテキストファイルを更新するスクリプトを持っています(私はあなたからそれを理解する助けを得ました)。しかし、私はこのスクリプトを自動化したいので、私はこれを作った:Pythonでnewbieコードを使ってtime.sleep()を実行すると、システムにダメージを与えることはできますか?

import time 
import os 

seconds = 3600 
kjor = 'python vg.py' 

time.sleep(seconds) 
os.system(kjor) 

time.sleep(seconds) 
os.system(kjor) 

time.sleep(seconds) 
os.system(kjor) 

私はこれらの24倍を下にコピーし続けた。私はこれが、ある程度のループでよりよく実行できることを知っていますが(でも?)、私はその分野で知識をたくさん持っていません(まだ)。

私の質問は次のとおりです:これを長時間実行するとシステムが何らかの形で損傷することはありますか?

+3

「システムは何らかの形で損傷していますか?これは何を意味するのでしょうか?燃え尽きます?爆発?ディセプティコンに変身して惑星を引き継ぐ? 「傷ついた」とはどういう意味ですか? –

+0

オーバーロードしてノックアウトする。 – bleakgadfly

+0

システムのオーバーロードがある場合は、おそらく単一のos.system(kjor)でノックアウトすれば十分です。 – sunqiang

答えて

9

あなたの質問に答えるために、これは何も傷つけることはありません。 time.sleepsがスリープしている間は、プログラムの処理能力はほとんどなく、残りのシステムは正常に動作します。

今、あなたのループの問題については、あなたは永遠に、コードの実行が必要な場合(またはあなたがプログラムを停止するまで)したいコードが

while True: 
    os.system(kjor) 
    time.sleep(seconds) 

ですこれは、あなたが望むもの、文字通り、で、無限ループが、この場合には、それは(おそらく)。あなたが繰り返しの特定の番号を持つに接続されている場合は、LinuxやMacのよう(UNIXプラットフォーム上にある場合

、あなたは、

for loop in xrange(240): 
    os.system(kjor) 
    time.sleep(seconds) 

最後にsunqiangの答えのようなもの(ここでは繰り返し)を行うことができます)あなたはcronを見てください。これは、定期的に実行するプログラムと特定の期間を設定するように設計されているためです。あなたは毎分あなたのスクリプトを実行するように設定することができますし、それは時間の終わりまで(またはあなたがそれを取り除く、どちらか早い方が来るまで)喜んで行います。

+0

Windowsはcron(8)と同様の機能を備えています。 「Task Scheduler」と呼ばれるコントロールパネルがあります(これはExplorer.exeで検索できます)。 – SingleNegationElimination

1

xrangeを使用してください。コードを24倍にコピーしないでください。

for loop in xrange(240): 
    time.sleep(seconds) 
    os.system(kjor) 

私の知る限り、システムにダメージを与えません。

1

これはシステムにダメージを与えるものではなく、かなり一般的です。

ちょっとした時間が経ってからアプリケーションが静かに停止するようにループを作成してください。 また、状況をチェックして、誰かが終了するように頼むのを待っているTCPポートを聞いているかもしれません(この終了メッセージを送信するために2番目のアプリケーションを作成する必要があります)。

関連する問題