Como posso colocar o resultado do comando rfcomm shell em uma variável em python?

Mas

Estou usando este script em python para me conectar a um dispositivo Bluetooth e, em seguida, obter dados, mas quero saber o resultado desse comando shell para fazer os próximos trabalhos

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)

este código é uma amostra quando executo o comando:

"sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1" 

no shell, ele retorna:

Connected /dev/rfcomm0 to XX:XX:XX:XX:XX:XX on channel 1
Press CTRL-C for hangup

mas como posso colocar o resultado acima em uma variável, pois preciso saber o resultado desse comando? Eu uso stdout, stderr no subprocesso, mas não funciona. Estou usando o python 2.7

Subprocesso Python e interação do usuário

link acima falamos sobre como obter output em uma variável em geral, mas o problema da minha dúvida relacionado ao rfcomm, que não coloca seu resultado em variável, eu executo aquele script e eles funcionam bem, mas não funciona quando usado com rfcomm comando

toque

Se estiver usando Python 3.5 ou superior , você pode usar run. Dessa forma, você terá acesso direto, assim,

result = subprocess.run(["sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1"], stdout=subprocess.PIPE)

Então acesse o que quiser assim,

result.stdout

Se você usar o Python 2.7 , conforme sugerido pela documentação que vinculei, eles o redirecionam para a seção API de alto nível mais antiga. A partir daí, você perceberá que pode usarcheck_output

result = subprocess.check_output(["sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1"])

Observe, se você quiser detectar o erro, também use o stderr=subprocess.STDOUTsinalizador.

result = subprocess.check_output("sudo rfcomm connect /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1", stderr=subprocess.STDOUT, shell=True)

Lasty, há uma coisa importante que você não deve estar ciente,

Por padrão, esta função retornará os dados como bytes codificados. A codificação real dos dados de saída pode depender do comando que está sendo invocado, portanto, a decodificação para texto muitas vezes precisará ser tratada no nível do aplicativo.

EDITAR

Já que seu objetivo parece obter saída durante a execução. Dê uma olhada nesta resposta . Prefiro vincular em vez de reinventar a roda.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como armazenar o resultado de um comando shell executado em uma variável em python?

Como posso colocar o resultado SQL em variável no VBA

Como posso colocar a saída do comando em uma variável

Como posso armazenar o resultado de uma função em uma variável em Python?

Eu quero salvar o resultado do comando como uma variável em lote de janela

Como eu armazenaria a saída do comando shell em uma variável em python?

Em 'sh' como colocar o resultado de uma comparação de strings em uma variável?

Em 'sh' como colocar o resultado de uma comparação de strings em uma variável?

como salvar o resultado do awk do hadoop em uma variável no shell script?

Como posso armazenar o resultado do comando tcl da API C definido pelo usuário "get_failed" em uma variável tcl?

Como posso armazenar o resultado do comando tcl da API C definido pelo usuário "get_failed" em uma variável tcl?

Como esconder a informação do comando shell irá imprimir e salvá-lo em uma variável?

Coloque apenas o stdout do último comando do shell em uma variável Python

atribua o resultado do loop a uma variável em python

Como posso colocar uma exibição XML em uma variável de matriz?

Como posso salvar o resultado de uma função em uma variável no BASH?

Como posso executar um comando shell no vim e retornar a string resultante em uma variável VimScript?

Python - como posso colocar uma variedade de entradas do usuário em uma função

Como posso salvar o resultado de uma consulta em uma variável no plsql

Como faço para obter uma variável em um comando $ (shell) em um makefile?

Como colocar uma variável em uma instrução def?

Python Como posso colocar loops For aninhados em uma função?

Vinculando o resultado de um comando do sistema a uma variável em Haskell

Salve o resultado do comando "dispositivos adb" em uma variável

Salve o resultado do comando gradle em uma variável no Gitlab CI / CD

Como capturar o resultado de uma chamada de sistema em uma variável de shell?

Como colocar o valor do viewbag como uma variável em javascript / jquery?

Como colocar os resultados do subprocesso em uma variável

como posso obter o valor de um comando azure cli list em uma variável?