Lire à partir d'un fichier journal, comme il a été écrit à l'aide de python
J'essaie de trouver une façon agréable de lire un fichier de log en temps réel à l'aide de python. J'aimerais processus de lignes à partir d'un fichier journal, au moment où, comme il est écrit. En quelque sorte j'ai besoin de continuer à essayer de lire le fichier jusqu'à ce qu'il est créé et ensuite continuer à traiter les lignes jusqu'à ce que j'ai terminer le processus. Est-il un moyen approprié de le faire? Merci.
- Celui-ci est trop bon... je pense qu'il correspond à vos critères de bien et donne une classe qui pourrait être étendu facilement. http://code.activestate.com/recipes/577968-log-watcher-tail-f-log/
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme:
Exemple a été extrait à partir ici.
file
semble pas définie dans ce contexte, fyi.Prendre un coup d'oeil à ce PDF à partir de la page 38, ~diapositive I-77 et vous trouverez toutes les informations dont vous avez besoin. Bien entendu, le reste de la glisse sont incroyables, trop, mais ceux qui traitent spécifiquement à votre question:
Que c'est Python et la journalisation balisé, il n'y a pas d'autre possibilité de le faire.
Je suppose que c'est basé sur un logger de Python, de l'exploitation forestière.Gestionnaire de base.
Il vous suffit de créer une classe qui obtient le (nommé) enregistreur d'instance et d'écraser le
emit
fonction de le mettre sur une interface graphique (si vous avez besoin de console, il suffit d'ajouter une console gestionnaire le gestionnaire de fichier)Exemple:
Je suis actuellement en utilisant un code similaire pour ajouter un TkinterTreectrl.Multilistbox pour l'affichage de l'enregistreur de sortie au moment de l'exécution.
Off-Side: L'enregistreur ne reçoit que les données dès qu'il est initialisé, donc si vous voulez avoir toutes vos données disponible, vous devez l'initialiser au début. (Je sais que c'est ce qui est prévu, mais je pense qu'il vaut la peine d'être mentionné.)
Peut-être que vous pourriez faire un appel système pour
l'aide de mac os.system()