私はこのブロックを持っています:
if data[0] == OUTPUT:
pin,val = ord(data[0]),ord(data[1])
if (pin == 1): #Turn Master Bedroom Light on
process = subprocess.call(cmd1, stdout=subprocess.PIPE)
print process
elif (pin == 2): #Turn Master Bedroom Light off
process = subprocess.call(cmd2, stdout=subprocess.PIPE)
print process
elif (pin == 3 or pin == 4): #Toggle garage door
process = subprocess.call(cmd3, stdout=subprocess.PIPE)
print process
else:
print "Invalid Pin"
ここで、cmd1、cmd2、および cmd3 は実行しようとしているシェル スクリプト ファイルであり、OUTPUT は 1 に等しい定義済みの定数です。ブロックが実際に実行されることはわかっていますが、subprocess.call ステートメントでハングします。
私が実行すると:
subprocess.call(cmd1, stdout=subprocess.PIPE)
Pythonインタープリターではそれ自体で問題なく動作しますが、私のif-elifブロックではハングします。理由はありますか?私は完全に困惑しています...これが機能するようになるまで、今のところvalの値を無視しています。
前もって感謝します!私はPythonにかなり慣れていないので、優しくしてください:)