C で作成およびコンパイルされたプログラムがあり、Unix シェルからの典型的なデータ入力があります。一方、私は Windows を使用しています。
Python で記述した独自のコードの出力から、このプログラムに入力を送信する必要があります。
これを行う最善の方法は何ですか?について読んだことがありますpexpect
が、実際に実装する方法がわかりません。誰かがこれについて最善の方法を説明できますか?
C で作成およびコンパイルされたプログラムがあり、Unix シェルからの典型的なデータ入力があります。一方、私は Windows を使用しています。
Python で記述した独自のコードの出力から、このプログラムに入力を送信する必要があります。
これを行う最善の方法は何ですか?について読んだことがありますpexpect
が、実際に実装する方法がわかりません。誰かがこれについて最善の方法を説明できますか?
Pythonsubprocess
モジュールを使用することをお勧めします。
これはos.popen()
関数呼び出しの代わりであり、パイプを介して標準入力/出力/エラー ストリームと対話しながらプログラムを実行できます。
使用例:
import subprocess
process = subprocess.Popen("test.exe", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
input,output = process.stdin,process.stdout
input.write("hello world !")
print(output.read().decode('latin1'))
input.close()
output.close()
status = process.wait()
インタラクティブな質問やプロンプトへの応答に対処する必要がない場合は、Adrien Plisson が提案しているように、気にせずpexpect
に を使用してください。subprocess.communicate
ただし、 が必要な場合は、pexpect
開始するための最良の方法は、そのホームページの例に目を通してから、正確に何をする必要があるかを理解してからドキュメントを読み始めることです。