我正在尝试在python中使用bluetoothctl进行扫描并与某些设备配对,但未成功。 例如,运行以下代码时:
scan_process = subprocess.Popen(['bluetoothctl', 'devices'], stdout=subprocess.PIPE)
,然后使用.communicate(0)传递输出,程序将冻结,实际上bluettothctl期望连续流(即充当子外壳程序),这就是为什么交流不起作用的原因。所以我尝试像这样通过stdin传递第二个命令:
open_blue = subprocess.Popen(["bluetoothctl"], shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, stdin=subprocess.PIPE)
while True: # lets wait for 'user' prompt
line = open_blue.stdout.readline().rstrip()
if line.endswith("#"): # this is the prompt, presumably, so stop reading STDOUT
break
print(line + "\n") # print the subprocesses STDOUT
open_blue.stdin.write("help\n") # send the `help` command
while True:
line = open_blue.stdout.readline().rstrip()
if line.endswith("#"): # this is the prompt, presumably, so stop reading STDOUT
break
print(line + "\n") # print the subprocesses STDOUT
但是同样的问题。 有人可以帮我解决问题吗 谢谢