Ausgabeumlenkung mit Python unter windows

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.
dakn84

Ausgabeumlenkung mit Python unter windows

Beitragvon dakn84 » Freitag 29. Oktober 2004, 07:55

Hi zusammen,

ich möchte einen build prozess zum einen in einem logfile speichern aber auch alles gleichzeitig auf dem monitor ausgeben.

also das mit dem logfile funktioniert einwandfrei, aber das ausgeben auf dem bildschirm klappt nicht :cry: .

Wer kann mir da helfen ?????

Gruß
Benutzeravatar
NOTZE
User
Beiträge: 106
Registriert: Mittwoch 21. Januar 2004, 20:28

Beitragvon NOTZE » Freitag 29. Oktober 2004, 08:33

Wenn du jetzt noch sagst was dein _genaues_ problem ist kann man dir sicher auch helfen :roll:
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Freitag 29. Oktober 2004, 11:28

Hi dakn84,

bei den Codesnippets habe ich eine Linebufferklasse gepostet:
http://python.sandtner.org/viewtopic.php?t=1922
Die ist genau für solche sachen gedacht und sollte auch unter Windows funktionieren.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Sorgenkind
User
Beiträge: 34
Registriert: Samstag 24. Juli 2004, 19:25
Kontaktdaten:

Beitragvon Sorgenkind » Freitag 29. Oktober 2004, 12:34

Würds viel einfacher machen:

Code: Alles auswählen

import sys
class Umleiter:
    def __init__(self,f):
        self.stdout=sys.stdout
        self.file=file(f,"a+")
    def write(self,x):
        self.file.write(x)
        self.stdout.write(x)
    def __getattr__(self,x):
        return getattr(self.stdout,x)

sys.stdout=Umleiter("log.txt")

print "Test"
dakn84

Beitragvon dakn84 » Freitag 29. Oktober 2004, 15:30

Hi,

Wenn du jetzt noch sagst was dein _genaues_ problem ist kann man dir sicher auch helfen.

Also, ich erstelle mit Scons ein Build. Der Build Prozess soll in ein Logfile geschrieben werden, aber auch gleichzeitig auf dem Bildschirm ausgegeben werden.

Der Prozess wird in das Logfile geschrieben, nur die Ausgabe in der Cmd funzt nicht.

Unter Linux gibt es den Befehl 'tee' damit beides erreicht wird. Jetzt will ich wissen wie das klappt.

Gruß

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder