我有这个块:
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 是我正在尝试执行的 shell 脚本文件,而 OUTPUT 是一个等于 1 的预定义常量。我知道该块实际执行,但它与 subprocess.call 语句一起挂起。
当我运行时:
subprocess.call(cmd1, stdout=subprocess.PIPE)
单独在 python 解释器中,它工作得很好,但在我的 if-elif 块中它挂起。知道为什么吗?我完全感到困惑......我现在忽略 val 的价值,直到我可以让它工作。
提前致谢!我对python相当陌生,所以请温柔:)