我试图以编程方式与现有程序进行交互,该程序通过伪终端(/dev/pt/1)提供接口。
我对这件事的工作原理不太了解。目前,我可以与以下内容进行粗略但成功的交互:
echo SomeCommandToSend >> /dev/pts/1
并且可以同样粗略地检索结果:
cat /dev/pts/1
问:我如何干净地和编程地从Python中与这个伪终端交互?
我看过这些医生,但无法在本例中看到如何使用它,因为我不想生成一个新的进程,只需要与现有的进程进行通信。
发布于 2017-09-12 16:49:24
下面的代码将一次将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()https://stackoverflow.com/questions/46181452
复制相似问题