Hallo,
man kann ja mithilfe von sys.stderr = open("/tmp/test.stderr","a") und sys.stdout = open("/tmp/test.stdout","a") stderr und stdout in eine Datei umleiten. Ich würde es aber gerne trotzdem am Bildschirm ausgeben lassen und gleichzeitig in eine Datei schreiben. Kennt jemand eine Möglichkeit?
lg Richi
Python stdout, stderr
Ich würd'ne neue Klasse machen die von file erbt und die Methode write überschreibt... Dort einfach nur die Methode der Superklasse aufrufen und darunter'n print. Wären 3 Zeilen Code und eine Veränderung der Zuweisung des sys.stdout.
Code: Alles auswählen
import sys
class Spam(object):
def __init__(self, filename):
self.output_file = open(filename, "w")
self.stdout = sys.stdout
def write(self, data):
self.output_file.write(data)
self.stdout.write(data)
def reset(self):
sys.stdout = self.stdout
self.stdout_file.close()
sys.stdout = Spam("test.txt")
print "hallo"
Das Leben ist wie ein Tennisball.