【发布时间】:2018-12-21 20:07:42
【问题描述】:
我在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 and user interaction
在link 上面讨论了在一般变量中获取输出,但我的问题中与 rfcomm 相关的问题,它没有将其结果放入变量中,我运行这些脚本并且它们运行良好,但它不起作用当它与 rfcomm 命令一起使用时
【问题讨论】:
-
想要的结果是什么?你想让
Connected /dev/rfcomm0 to XX:XX:XX:XX:XX:XX on channel 1成为一个变量吗? -
是的,我需要把这个结果或者任何结果,例如,错误结果放在一个变量中
-
你可以做
my_Variable = stdout
标签: python variables subprocess rfcomm