Отправить символ в подпроцесс. Открыть
Я пытаюсь управлять omxplayer в командной строке на моем rpi3, используя скрипт на python, я вызываю subprocess.Popen и для управления им (например, воспроизведение / пауза, увеличение / уменьшение громкости и т. Д.), Я должен написать символ для стандартный (например, p, +/- и т. д.), символ передается в send_signal как переменный текст, используя связь, которую я не могу контролировать, есть ли лучший способ?
РЕДАКТИРОВАТЬ: также player.stdin.write(текст); player.stdin.flush() не работает.
def start_music():
player = subprocess.Popen(['omxplayer', songs[0]], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
return player
def send_signal(player, text):
player.communicate(text.encode('utf-8'))
player.stdin.close()
при попытке с помощью команды cat -e вместо omxplayer вы получите:
why_dont_you work
test_input
test_input$
test_input2
test_input2$
a
a$
обратите внимание, что первая строка как-то не отображается снова
1 ответ
Нужно указать, что вы передаете входную переменную, т.е.
def send_signal(player, text):
player.communicate(input=text.encode('utf-8'))
player.stdin.close()