Lesen der Ausgabe einer Python-Datei, die in der Konsole protokolliert wird

Lesen der Ausgabe einer Python-Datei, die in der Konsole protokolliert wird

Ich habe vor Kurzem angefangen, mit dem Protokollierungsmodul in Python herumzuspielen. Meine Ausgabe wird jetzt an eine Protokolldatei gesendet. So weit, so gut. Aber ich möchte auch in der Lage sein, den Fortschritt im Auge zu behalten, ohne mich mit verschiedenen Protokollierungsdatei-Handlern in Python herumschlagen zu müssen. Und mir gefällt die allgemeine Idee, zu wissen, wie ich die Dinge sowieso an meine Shell umleiten kann.

Ich möchte also eine Möglichkeit haben, python myscript.py foo bar maybepipe somethingvon der Shell aus zu sehen, wie die Protokolldatei zeilenweise erstellt wird, und nach Abschluss noch immer über meine Protokolldatei zu verfügen.

ich fandLesen einer Datei, die aktiv geschrieben wird, aber ich bin nicht sicher, wie sich die darin gegebenen Antworten auf diesen Fall übertragen lassen. Hat jemand Vorschläge?

Danke!

Antwort1

Auch wenn es nicht genau das ist, was Sie möchten, denke ich, dass es für Sie einfacher wäre, einfach den folgenden Befehl einzugeben:

tail -f Protokolldatei

um die Protokolldatei anzuzeigen, in die geschrieben wird. Dies ist auch ein allgemeiner Ansatz, der mit jedem Programm funktioniert, das in eine Protokolldatei schreibt, aber keine visuelle Fortschrittsanzeige bietet.

Antwort2

Ich frage mich, ob Sie vielleicht nach etwas suchen wie

python myscript.py | tee log.datei 

Das Bit „|tee logfile“ erstellt eine Kopie der Ausgabe (von stdout), schreibt sie in die Datei log.file und zeigt sie auch auf der Konsole an.

verwandte Informationen