Я пытаюсь использовать Python для автоматизации процесса, который включает вызов исполняемого файла Fortran и передачу некоторых пользовательских входов. Я потратил несколько часов на чтение похожих вопросов и пробую разные вещи, но мне не повезло. Вот минимальный пример, чтобы показать, что я пытался в прошломИспользование Python для запуска исполняемого файла и заполнения ввода пользователем
#!/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
Любые предложения или указатели с благодарностью.
EDIT:
Когда я называю 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'
Как-то, мне нужно запустить исполняемый файл, подождать, пока она не попросит ввода пользователя, а затем поставьте этот вход.
Это работает отлично. Спасибо! – James