Python:如何写入和读取现有的伪终端 (pty/pts)
Python: How to write to and read from an existing PseudoTerminal (pty/pts)
我正在尝试以编程方式与通过伪终端提供接口的现有程序进行交互 (/dev/pts/1)
我对它的工作原理知之甚少。我目前可以粗略但成功地与以下对象进行交互:
echo SomeCommandToSend >> /dev/pts/1
并且可以同样粗略地检索结果:
cat /dev/pts/1
问题:如何从 Python 以编程方式干净地与此伪终端交互?
我查看了 these docs,但无法了解在这种情况下如何使用它,因为我不想生成新进程,而只是与现有进程通信。
以下代码将一次打印 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()
我正在尝试以编程方式与通过伪终端提供接口的现有程序进行交互 (/dev/pts/1)
我对它的工作原理知之甚少。我目前可以粗略但成功地与以下对象进行交互:
echo SomeCommandToSend >> /dev/pts/1
并且可以同样粗略地检索结果:
cat /dev/pts/1
问题:如何从 Python 以编程方式干净地与此伪终端交互?
我查看了 these docs,但无法了解在这种情况下如何使用它,因为我不想生成新进程,而只是与现有进程通信。
以下代码将一次打印 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()