Comment suivre les fichiers journaux en Python : bloquant ou non bloquant ?

Susan Sarandon
Libérer: 2024-11-20 19:54:18
original
963 Les gens l'ont consulté

How to Tail Log Files in Python: Blocking vs. Non-Blocking?

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal