subprocess Befehl vereinfachen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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.
[url=http://www.proandkon.com]proandkon.com[/url]
deets

Doch, kann man.

Code: Alles auswählen

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

p.communicate(gnuplot_script)

sollte es eigentlich sein.
Antworten