[Python-de] close() und flush() (was: Problem mit os.spawnv)

Andreas Kaiser listen at vocote.de
Fri Mar 28 13:58:14 EST 2003


Hallo Christian,

Am Freitag, 28. März 2003 13:28 schrieb Christian Mönch:
> Steht "f.close" und "f.flush" tatsächlich so im Code, also ohne Klammern?
> Dann wird die close-Methode von f nicht aufgerufen, sondern lediglich
> eine Referenz darauf erzeugt, die dann allerdings nicht weiter genutzt
> und sofort wieder verworfen wird.

Die beiden Anweisungen stehen ohne Klammer im Code :(
Mit Klammer dahinter funktioniert alles wie erwartet - das war der Fehler!

> > 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']) [...]
>
> Ein flush nach close führt zu einem Fehler ...

Das habe ich bemerkt!

> und ein flush vor einem close
> ist unnötigt, da bei close alle Puffer ge-flusht (denglisch ist was
> feines ;-) werden.

Sieht jetzt so aus und funktioniert:
   def makeAll(self):
     f.write(text)
     f.close()
     pid = os.spawnv(os.P_WAIT, '/usr/bin/latex', ['latex','filename.tex']) 

Danke!

Grüße
Andreas





More information about the Python-de mailing list