Python を使用して、Fortran 実行可能ファイルの呼び出しとユーザー入力の送信を含むプロセスを自動化しようとしています。同様の質問を読んだり、さまざまなことを試したりするのに数時間を費やしましたが、うまくいきませんでした。これは、私が最後に試したことを示すための最小限の例です
#!/usr/bin/python
import subprocess
# Calling executable
ps = subprocess.Popen('fortranExecutable',shell=True,stdin=subprocess.PIPE)
ps.communicate('argument 1')
ps.communicate('argument 2')
ただし、これを実行しようとすると、次のエラーが発生します。
File "gridGen.py", line 216, in <module>
ps.communicate(outputName)
File "/opt/apps/python/epd/7.2.2/lib/python2.7/subprocess.py", line 737, in communicate
self.stdin.write(input)
ValueError: I/O operation on closed file
提案や指針は大歓迎です。
編集:
Fortran 実行可能ファイルを呼び出すと、次のようにユーザー入力を求められます。
fortranExecutable
Enter name of input file: 'this is where I want to put argument 1'
Enter name of output file: 'this is where I want to put argument 2'
どういうわけか、実行可能ファイルを実行し、ユーザー入力を求めるまで待ってから、その入力を提供する必要があります。