/ / Linux Python liest die Ausgabe eines laufenden Python-Skripts - Python, Linux, Protokollierung, Ausgabe, Autorun

Linux Python liest die Ausgabe eines laufenden Python-Skripts - Python, Linux, Protokollierung, Ausgabe, Autorun

Ich habe ein Python-Skript, das als Dienst in Linux (auch als Autorun) ausgeführt wird, und es gibt eine Menge Ausgaben! Wie kann ich diese Ausgabe lesen, wenn das Programm bereits läuft?

Vielleicht könnte ich die gesamte Ausgabe in eine Datei protokollieren, aber dann müsste ich die Datei ständig öffnen und aktualisieren, wenn eine neue Ausgabe protokolliert wird!

Antworten:

2 für die Antwort № 1

Es ist auch möglich, das Tail von der Python-Seite aus zu implementieren, was im Wesentlichen ein kontinuierliches Lesen davon ist. Das Code-Snippet für diese Funktion finden Sie hier:

http://code.activestate.com/recipes/157035-tail-f-in-python/

Wenn Sie anstelle der Schreibmethode den Anfügemodus für das Schreiben von Dateien verwenden, können Sie außerdem kontinuierlich ausgeben.

Scrapy verwendet auch das Konzept von Pipelines, die viele der gleichen Funktionen zulassen. Hier ist ein Beispiel für einen Scrapy-Code, den Sie möglicherweise für dasselbe verwenden:

class JsonWriterPipeline(object):
def __init__(self):
self.file = (open(filepath, "a"))
def process_item(self, item, spider):
self.file.write(json.dumps(dict(item)) + "n")
return item

3 für die Antwort № 2

Wenn es um den zweiten Absatz der Frage geht, können Sie in der Shell Folgendes tun:

tail -f logfile.log

Diese wird automatisch aktualisiert, wenn die Datei aktualisiert wird. Unter Linux ist dies eine funktionierende Lösung.