Ich muss alle meine Druckanweisungen sowohl an das Terminal als auch an die Datei ausgeben. Ich habe eine Lösung in gefunden stackoverflow Frage Also ich benutze
%Vor%Das funktioniert super,
Mein Problem ist, wenn ich aufhören will, in die Datei zu schreiben und zum normalen Betrieb zurückzukehren, der nur auf dem Endgerät gedruckt wird
Ich habe versucht, del (sys.stdout) zu verwenden, um die Methode del ohne Glück aufzurufen.
Ich habe sogar versucht, die letzte Zeile zu ändern:
und dann verwenden Sie del (multiple_print) und failed
Was auch immer ich versuchte, weitere Verwendungen von print werden immer noch in Terminal und Datei geschrieben.
Irgendwelche Ideen?
Sie müssen einen Verweis auf den ursprünglichen Dateideskriptor vor der Neuzuweisung speichern:
%Vor% und weisen Sie es anschließend sys.stdout
! neu zu!
Die Anweisung del
ruft __del__
nicht direkt auf, sondern verringert den Referenzzähler Ihres Objekts. Die Methode __del__
wird aufgerufen, wenn der Referenzzähler Null erreicht und Ihr Objekt zerstört wird. Sie können also die Neuzuweisung nicht erzwingen, weil es Sache des Müllsammlers ist, Ihre Methode __del__
aufzurufen.
Sie müssen die Variable sys.stdout direkt neu zuweisen:
Versuchen:
%Vor%Tags und Links python