Я пытаюсь создать скрипт Python, который сообщает мне, что порт на 0.tcp.ngrok.io запускается, когда я запускаю код на терминале (после перемещения исполняемого файла ngrok в /usr/local/bin)
ngrok tcp 22
Я получаю такой вывод
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status connecting
Version 2.2.4
Region United States (us)
Web Interface http://127.0.0.1:4041
Forwarding tcp://0.tcp.ngrok.io:13014 -> localhost:22
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Моя первая попытка - записать подпроцесс stdout в переменную, но поскольку stdout является циклическим, stdout.read() никогда не заканчивается, это код
import subprocess
ngrok = subprocess.Popen(['ngrok','tcp','22'],stdout = subprocess.PIPE)
output_text = ngrok.stdout.read() # script stops here forever
[**code for getting domain:port from output_text**]
как я могу получить моментальный снимок stdout для переменной, не останавливая ngrok?
Есть ли другой способ сделать это (следующей попыткой будет веб-скрейпер на локальном хосте, но было бы неплохо иметь эти знания для других команд, таких как top)
заранее спасибо