Maison > Article > développement back-end > Comment suivre les fichiers journaux en Python : bloquant ou non bloquant ?
Fichiers journaux de suivi avec Python
On souhaite souvent suivre un fichier journal ou le regarder passivement pour voir le nouveau contenu qui y est ajouté . Ceci peut être réalisé en Python de plusieurs manières.
Non bloquant
Pour cette approche, on peut utiliser le sous-processus et sélectionner des modules.
import time import subprocess import select f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) p = select.poll() p.register(f.stdout) while True: if p.poll(1): print(f.stdout.readline()) time.sleep(1)
Ce code ouvre un sous-processus exécutant tail -F sur le fichier spécifié et interroge sa sortie pour de nouvelles données, en les imprimant lorsqu'elles sont disponibles. Cette approche ne bloque pas le programme principal.
Blocage
Une approche de blocage plus simple est disponible en utilisant uniquement le module de sous-processus.
import subprocess f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) while True: line = f.stdout.readline() print(line)
Ce code imprime également de nouvelles lignes au fur et à mesure qu'elles sont ajoutées, mais il se bloquera jusqu'à la fermeture du programme tail.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!