Seite 1 von 1

subprocess Befehl vereinfachen

Verfasst: Donnerstag 10. November 2011, 18:12
von mzh
Liebes Forum,
Ich patche einen subprocess Aufruf zusammen. Der subprocess wird dazu verwendet, mit Gnuplot ein Diagramm zu erstellen. Dazu muss für Gnuplot zuerst eine kleine Anleitung geschrieben werden. Leider fällt mir da nichts besseres ein, als die Gnuplot Befehle in eine Datei zu schreiben, kann man die Befehle nicht direkt in den stdin vom subprocess streamen? Bzw, wenn ja, wie?

Hier mein Ansatz:

Code: Alles auswählen

     gnuplot_script  = "set terminal svg\n"
     gnuplot_script += "set output \'%s.svg\'\n" % target
     gnuplot_script += "plot \'%s.dat\'\n" % target
     gnuplot_dat = open('gnuplot_script.gnu', 'w')
     gnuplot_dat.write(gnuplot_script)
     gnuplot_dat.close()
     gnup = subprocess.Popen(['/usr/local/bin/gnuplot'], stdin=open('./gnuplot_script.gnu', 'r'),     stderr=subprocess.PIPE, shell=False)
Das Diagramm wird erstellt, aber eben ich frage mich, wie ich mir das Schreiben des Mikro-Gnuplotskriptes sparen kann.
Vielen Dank für Hinweise.

Re: subprocess Befehl vereinfachen

Verfasst: Donnerstag 10. November 2011, 18:20
von deets
Doch, kann man.

Code: Alles auswählen

p = suprocess.Popen(.., stdin=subprocess.PIPE)

p.communicate(gnuplot_script)

sollte es eigentlich sein.