4

C で作成およびコンパイルされたプログラムがあり、Unix シェルからの典型的なデータ入力があります。一方、私は Windows を使用しています。

Python で記述した独自のコードの出力から、このプログラムに入力を送信する必要があります。

これを行う最善の方法は何ですか?について読んだことがありますpexpectが、実際に実装する方法がわかりません。誰かがこれについて最善の方法を説明できますか?

4

2 に答える 2

6

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()
于 2013-01-14T21:01:58.423 に答える
3

インタラクティブな質問やプロンプトへの応答に対処する必要がない場合は、Adrien Plisson が提案しているように、気にせずpexpectに を使用してください。subprocess.communicate

ただし、 が必要な場合pexpect開始するための最良の方法は、そのホームページの例に目を通してから、正確に何をする必要があるかを理解してからドキュメントを読み始めることです。

于 2013-01-14T21:06:31.817 に答える