IDLE update

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
Holzdolph
User
Beiträge: 23
Registriert: Donnerstag 22. November 2007, 17:43

Hallo allerseits,

ich habe mir eine schöne GUI (mit tkinter) gebastelt ohne dabei wahnsinnig zu werden (zumindest sagen mir die Stimmen im Kopf immer das ich eh ganz normal bin -) mit der ich unter anderem ein externes Programm (ANSYS) aufrufe um ein paar Berechnungen zu machen...

soweit so gut, nur wenn das ANSYS startet bekommt weder meine GUI noch die IDLE auch nur die geringsten systemresourcen und meine schöne Anzeige - bei welcher Berechnung ANSYS gerade ist - ist ziemlich wertlos - weil sie zwar sicher dargestellt nur eben nie angezeigt wird.

ich verwende folgenen externen aufruf für ansys:

Code: Alles auswählen

UpdateAnsysData(line,self.parameterset[i],jobnr)
string = '-b -p struct -i start.mac -o xxx'
print "ansysStart jetzt\n"
process = subprocess.Popen([self.ansyspath+'ansys100.exe',string], stdout=subprocess.PIPE)
process.wait()
gibts da ne andere methode, es reicht schon wenn man die zeile mit dem print regelmässig sehen könnte (also die GUI ist solange das ANSYS läuft sowieso nebensache). oder liegts am IDLE ?

bin für jede anregung dankbar
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo Holzdolph!

In etwa so:

Code: Alles auswählen

args = [
    os.path.join(self.ansyspath, "ansys100.exe"), 
    "-b", "-p", "struct", "-i", "start.mac", "-o", "xxx"
]
print "ansysStart jetzt\n"
process = subprocess.Popen(args, stdout = subprocess.PIPE)
for line in process.stdout:
    print line,
process.wait()
Und mit viel hoffen, verhält sich ansys100.exe kommunikativ und schreibt die Ausgabe sofort nach STOUT und cached nicht alles.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten