41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
|
|
import sys
|
|
import time
|
|
import os
|
|
|
|
def follow_file(filename):
|
|
"""Liest eine Datei und gibt neue Zeilen aus, sobald sie hinzugefügt werden."""
|
|
print(f"Beobachte Datei: '{filename}'. Beenden mit Strg+C.")
|
|
|
|
# Warte, bis die Datei existiert
|
|
while not os.path.exists(filename):
|
|
print(f"Warte auf die Erstellung von '{filename}'...", end='\r')
|
|
time.sleep(1)
|
|
|
|
try:
|
|
with open(filename, 'r', encoding='utf-8', errors='ignore') as file_:
|
|
# Gehe zum Ende der Datei, falls sie schon Inhalt hat
|
|
# file_.seek(0, 2)
|
|
|
|
while True:
|
|
line = file_.readline()
|
|
if not line:
|
|
# Wenn keine neue Zeile da ist, kurz warten
|
|
time.sleep(0.1)
|
|
continue
|
|
# Neue Zeile gefunden, ausgeben
|
|
print(line, end='')
|
|
|
|
except FileNotFoundError:
|
|
print(f"Fehler: Datei '{filename}' wurde nicht gefunden.")
|
|
except KeyboardInterrupt:
|
|
print("\nViewer beendet.")
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) != 2:
|
|
print(f"Benutzung: python3 {sys.argv[0]} <dateipfad>")
|
|
sys.exit(1)
|
|
|
|
log_file_path = sys.argv[1]
|
|
follow_file(log_file_path)
|