2

入力ファイル(inputs.prj)で呼び出す必要がある実行可能ファイル(evapo.exe)があります。通常、Windowsコマンドプロンプトを使用して、c:\ myfiles\evapoinputs.prjと入力するだけで実行します(もちろん、両方の実行可能ファイルmyfiles フォルダーにある入力ファイル)

今、私はpythonを使って同じことをしたいと思っています。SOに関する他の同様の質問では、実行可能ファイルが他の情報を実行するように要求するときにサブプロセスなどの他の方法が機能しないため、wexpectを使用することを提案しました(私の場合、情報は入力ファイルです)。私は試した:

import wexpect

wexpect.run(r'c:\myfiles\evapo.exe')

そして、Pythonがハングします...、cmdを使用してexeと入力ファイルを組み合わせる方法を誰かが知っている場合は、助けてください。

4

2 に答える 2

4

wexpect渡したいすべての情報がファイル名である場合は必要ありません。

from subprocess import check_call

check_call(r'c:\myfiles\evapo.exe inputs.prj')
于 2012-07-04T00:04:08.823 に答える
1

wexpect は pexpect の python ポートであり、同様に動作しますが、Windows でも動作すると思います。

以下を確認しました:http://www.jjoseph.org/files/led_calibration/wexpect.py

その場合は、の例のいずれかが機能するpexpectはずです。

出力を収集するだけの場合は、run() コマンドを使用する必要があります。これは、対話して入力を提供する場合には機能しません。

入力を送信する場合は、spawn() 関数を使用する必要があります。

コード内の例を参照してください。ここで、コマンドは wexpect によって送信される入力を要求します

child = wexpect.spawn('some command')
child.expect ('Password:')
child.sendline (mypassword)

pexpect で次の回答を確認し、wexpect に置き換えてください。

また、Windows の場合、次のポートが機能するものとして提案されています。

于 2012-07-03T23:55:43.037 に答える