À l'aide de Python pour exécuter le fichier exécutable et de le remplir dans la saisie de l'utilisateur

Je suis en train d'utiliser Python pour automatiser un processus qui implique l'appel d'une Fortran exécutable et de présenter des entrées de l'utilisateur. J'ai passé quelques heures à lire grâce à des questions et d'essayer des choses différentes, mais je n'ai pas eu de chance. Voici un exemple minimal de montrer ce que j'ai essayé hier

#!/usr/bin/python

import subprocess

# Calling executable 
ps = subprocess.Popen('fortranExecutable',shell=True,stdin=subprocess.PIPE)
ps.communicate('argument 1')
ps.communicate('argument 2')

Cependant, lorsque j'essaie d'exécuter ceci, j'obtiens l'erreur suivante:

  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

Des suggestions ou des pointeurs sont grandement appréciés.

EDIT:

Lorsque j'appelle le Fortran exécutable, il demande la saisie de l'utilisateur comme suit:

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'

D'une certaine manière, j'ai besoin de lancer l'exécutable, attendre jusqu'à ce qu'il demande pour l'entrée d'utilisateur et d'alimentation d'entrée.

OriginalL'auteur James | 2014-02-03