2017-09-12 7 views
0

(PTY/PTS)は、既存の擬似端末から読み込む方法(/ devが/ PTS/1)Pythonは:への書き込みと私はプログラム的に疑似端末を経由してインタフェースを提供し、既存のプログラムと対話しようとしています

私はこの仕組みがどういうものか理解していない。私は現在で粗しかし、成功し対話することができます:
echo SomeCommandToSend >> /dev/pts/1

と同じようにぞんざいに結果を取得することができます
cat /dev/pts/1

は質問:どのように私はきれいにし、プログラムのPythonから、この疑似端末と相互に作用することができますか?

私はthese docsを見てきましたが、新しいプロセスを生成したいのではなく、既存のものと通信するだけで、この場合の使用方法はわかりませんでした。

答えて

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() 
+0

ありがとう! Python 2でその印刷構文を複製する方法をお勧めしますか? –

+1

@MtlDev、はい、 'print'を' sys.stdout.write'に置き換えます – RedEyed

関連する問題