Verwendung von Python zum ausführen von ausführbaren und füllen Sie Benutzereingaben

Ich versuche, Python zu automatisieren einen Prozess, der Aufruf eines Fortran-ausführbare Datei und der Abgabe einiger Eingaben des Benutzers. Ich verbrachte ein paar Stunden Lesen, die ähnliche Fragen und versuchen, verschiedene Dinge, aber hatte noch nicht viel Glück. Hier ist ein minimal-Beispiel, um zu zeigen, was ich versucht habe Letzte

#!/usr/bin/python

import subprocess

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

Jedoch, wenn ich versuche zu laufen, bekomme ich die folgende Fehlermeldung:

  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

Anregungen oder Hinweise sind wir sehr dankbar.

EDIT:

Mir beim Aufruf der Fortran ausführbare Datei, fragt er nach Benutzer-Eingabe wie folgt:

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'

Irgendwie muss ich die ausführbare Datei ausführen, warten, bis er fragt nach Benutzer-Eingabe, und geben Sie dann die Eingaben.

InformationsquelleAutor James | 2014-02-03
Schreibe einen Kommentar