[Python-de] close() und flush() (was: Problem mit os.spawnv)
Andreas Kaiser
listen at vocote.de
Fri Mar 28 11:32:18 EST 2003
Am Freitag, 28. März 2003 11:13 schrieb Andreas Kaiser:
> Am Freitag, 28. März 2003 01:05 schrieb Andreas Kaiser:
> > Nun zu meinem Problem:
> > Wenn ich in IDLE folgendes aufrufe, funktioniert alles wie
> > beabsichtigt:
> >
> > import os
> > os.spawnv(os.P_NOWAIT, '/usr/bin/latex', ['latex', 'filename.tex'])
> >
> > Führe ich das Ganze in einem Programm aus, wo wxPython mit im Einsatz
> > ist, funktioniert die ganze Geschichte nicht, LaTex bricht mit einem
> > Fehler ab.
>
> Ich antworte mir mal selber :)
> Das Problem lag daran, dass obwohl close() aufgerufen wurde, um die
> benötigte Datei vorher zu schließen, die Datei noch leer war. Da der
> nächste Befahl nach close() os.spawnwv(...) war, lief LaTeX ins Leere.
> Ein flush() dazwischen und alles funktioniert wie erwartet.
>
KORREKTUR: mit flush() nach close() geht es nicht! Die Datei ist noch leer.
Ich habe den os.spawnv Aufruf nun auf einen extra Button gelegt. Das
funktioniert.
Also das geht nicht:
(Beipieldarstellung)
def makeAll(self):
f.write(text)
f.close
f.flush
pid = os.spawnv(os.P_WAIT, '/usr/bin/latex', ['latex', 'filename.tex'])
makeAll()
Das geht:
def writeFile(self):
f.write(text)
f.close
def makeLatex(self):
pid = os.spawnv(os.P_WAIT, '/usr/bin/latex', ['latex', 'filename.tex'])
writeFile()
makeLatex()
Nach close() UND einem flush() sollte doch aber die Datei mit Inhalt gefüllt
sein? Ist das ein Bug?
Debian (woody), Python 2.2.1
Grüße
Andreas
More information about the Python-de
mailing list