我正在使用Python脚本连接蓝牙设备并获取数据,但我想知道此Shell命令的结果以便进行下一步工作。
import os
import time
import signal
import subprocess
p = subprocess.Popen("sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1",shell=True)
(stderr,stdout) = p.communicate()
print 'stderr: [%s]' % stderr
print 'stdout: [%s]' % stdout
time.sleep(5)
while True:
print "Device is ready"
time.sleep(5)
这段代码是我执行命令时的示例:
"sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1"
在shell中,它返回:
Connected /dev/rfcomm0 to XX:XX:XX:XX:XX:XX on channel 1
Press CTRL-C for hangup
但是我该如何将上述结果放入变量中呢?因为我需要知道此命令的结果。我在子进程中使用stdout、stderr,但它不起作用。我正在使用Python 2.7。 Python subprocess和用户交互讨论了通常情况下如何将输出存储到变量中,但是我的问题与rfcomm有关,它不会将其结果存储到变量中。当我运行这些脚本时,它们可以正常工作,但是使用rfcomm命令时却不能正常工作。
my_Variable = stdout
进行操作。 - johnashu