2017-10-16 20 views
0

私はSooをWebアプリケーションで使用して音量をロックしようとしています。私はこれを行うために別のスクリプトを実行する必要があります。ユーザーがロックボタンを押すと、プログラムが呼び出されるか、またはプログラムが停止するまでボリュームを常に値に設定するループが実行されます。 これは、主なコードの中で私がロックを解除するためのユーザ入力を得ることができない場合と同じように、別のスクリプトで行う必要があります。Pythonが外部Pythonプログラムを実行

@app.route("/lock") 
def lock(): 
    run(togglelock.py) 
    return "ok" 

#togglelock.py 
toggle("F","T") 
sound1 = (sonos.volume) 
if toggle == "T": 
sonos1.volume = sound1 
else: 
    break 
+2

'run(togglelock.py)' => 'run(" togglelock.py ")'? –

+0

runとtoggleはコマンドではないので、引用符で全体の行が問題になることはありません – mRyan

答えて

0

他のpythonファイルが同じディレクトリにある限り、実行するときに単純にインポートできます。

def lock(): 
import togglelock 
return "ok" 
#do more stuff.... 
+0

スクリプトをメインスクリプトの外側で別々に実行することはできますが、作成されたwhileループiveから脱出することはできません。 whileループに入ると、スパムはXにボリュームを設定し、今度はボタンを押してコードをオフにした場合に、コードのその部分だけを実行してWebアプリケーションをチェックしません。 – mRyan

+0

あなたがしたいことは、別のインスタンスのpythonを必要とするように思えます。私は、それと同じように2つのスクリプトを並行して実行することは現実的ではないと思います。何らかの "イベントリスナー"を追加する方法があるかもしれませんが、それは自明ではないかもしれません。 – SuperStew

関連する問題