あなたは使用してみることができますsubprocess.Popen
プログラムとして python を使用したサンプル コードを次に示します。
>>> p = subprocess.Popen(['python'],stdin = subprocess.PIPE,stdout = subprocess.PIPE)
>>> p.stdin.write('print "Hello, world!"\n')
>>> p.stdin.write('for i in range(10):\n print i\n')
>>> p.communicate()
('Hello, world!\r\n0\r\n1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n', None)
Linux で実行している場合、コマンドを端末に送信する最も簡単な方法は、shlex.split
関数を使用することです。だからあなたは電話するでしょう
p = subprocess.Popen(shlex.split('tleaf -f leaprc'),stdin = subprocess.PIPE,stdout = subprocess.PIPE)
少なくとも私の経験ではcommunicate
、プロセス オブジェクトを呼び出すとプロセス オブジェクトが閉じられるため、出力を読み取る機会は 1 回しかありません。これがうまくいかない場合は、pexpect
モジュールを調べます。