我试图以编程方式与通过伪终端提供接口的现有程序进行交互(/ dev / pts / 1)
我对这是如何工作的理解不足。我现在可以粗暴地进行互动,但成功地:
echo SomeCommandToSend >> /dev/pts/1
并且可以同样粗略地检索结果:
cat /dev/pts/1
问题:如何从Python干净地以编程方式与此伪终端进行交互?
我看过these docs但是在这种情况下无法看到如何使用它,因为我不想生成新进程,只是与现有进程通信。
答案 0 :(得分:1)
以下代码会一次打印hello
到您的终端(在您的终端中执行tty
以获取/dev/pts/n
)并从终端无限读取。
import sys
with open("/dev/pts/1", "wb+", buffering=0) as term:
term.write("hello".encode())
while True:
print(term.read(1).decode(), end='')
sys.stdout.flush()