1

コマンド ラインを呼び出す Python コード (たとえば、python 自体) を作成しています。コマンドは独自のシェルを開きます。Python はこのシェルをどのように制御できますか?

import subprocess
subprocess.call(['./testprg'])

# testprg will open its own shell 
# so the code below will not work
subprocess.call(['i 2'])

testprg は、シェル プロンプトを開く別のプログラムです。「i 2」と入力すると、値 2 の「挿入」コマンドがトリガーされます。

4

2 に答える 2

2

できません。subprocess対話型シェルとは対話しません。

最初のサブプロセスでそのパイプへstdin=PIPEの書き込みを使用する必要があります。'i 2\n'

ただし、インタラクティブなプログラムとやり取りしたい場合は、pexpect の使用を検討してください。それはあなたの人生をずっと楽にするかもしれません。

于 2012-10-02T10:43:47.730 に答える