IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

On dirait que python ne 'voit' pas que mon fichier log à été mise à jour [Python 3.X]


Sujet :

Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut On dirait que python ne 'voit' pas que mon fichier log à été mise à jour
    Bonjour,

    Désolé pour le titre mais j'ai du mal à exprimer de façon concise le problème auquel je fais face.

    Pour la petite histoire, je suis entrain de développer un programme en python (3.6 au moment où j'écris ces lignes) afin d'automatiser les synchronisations de mon package manager portage (je suis sous GNU/Linux Gentoo: `emerge --sync`) et qu'il me donne de façon automatique le nombre de logiciel à mettre à jour (avec opts --pretend).
    Je développe de la même manière une mise à jour auto du kernel (j'utilise un kernel 'custom' dont les sources se mettent à jour grâce à `git`).

    Bref, je suis sur la fin de l'écriture des modules (j'ai tout séparé en module).
    Je rencontre un dernier souci (lol dernier ce serait super ) :

    Dans mon module qui gère tout le côté 'portage' (le package manager de gentoo, écrit en python ) nommé 'portagemanager.py' j'ai deux classes: 'PortageHandler' qui récupère les infos grâce aux modules de portage/emerge et 'EmergeLogParser' qui est responsable de récupérer les infos grâce au fichier de log : '/var/log/emerge.log.'

    Dans ma classe 'PortageHandler' j'ai une méthode 'dosync()' qui est responsable de la synchronisations de 'portage'. Dans ma classe 'EmergeLogParser', j'ai une méthode 'last_sync()' qui récupère le dernier timestamp de la synchronisation de 'portage' grâce à une méthode 'getlog()' qui récupère juste les dernières n lignes du fichier de log ('/var/log/emerge.log'): ça évite de rechercher dans tout le fichier qui est/peu devenir gros (je viens de réinstaller mon système suite à un nouveau pc, mais mon avant dernier emerge.log pesait 24Mo avec 267 605 lignes).

    A la fin de la synchronisation et si celle-ci s'est bien passée, j'appelle ma classe 'EmergeLogParser' et la méthode 'last_sync()' afin de récupérer dans le fichier de log le dernier timestamp de la synchronisation de portage (ce qui est loin d'être parfait et que je vais modifié je pense).

    Voilà j'arrive à mon problème: le timestamp que je récupère n'est pas le dernier mais l'avant dernier. On dirait, que python ne voit pas la mise à jour du fichier log: lorsque j'appelle 'dosync()', le module 'emerge' responsable de la synchronisation de 'portage' écrit dans /var/log/emerge.log.
    J'ai le même timestamp (c'est à dire l'avant dernier) si j'appelle par la suite ma classe 'EmergeLogParser' et ma méthode 'last_sync()' depuis mon 'main()'.

    Par contre, si le programme sort et je le relance en appelant directement ma classe 'EmergeLogParser' et ma méthode 'last_sync()' depuis 'main()': bingo j'ai le dernier timestamp ....
    J'ai testé un time.sleep(jusqu'à 30) avant de récupérer le dernier timestamp: c'est pareil j'ai toujours l'avant dernier...

    Franchement je comprend pas, un regard extérieur pourrait m'aider.

    Je vous met en pièces jointe le module 'portagemanager.py' si vous avez besoin de tout le reste, y a pas de soucis

    A noter: je viens de me mettre à python et c'est mon premier programme. Je suis un amateur et je fais ça sur mon temps libre

    Merci,

    Jjeje007
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/11/2017, 10h52
  2. Python ne voit pas le format Windows
    Par hdgetnet dans le forum Général Python
    Réponses: 10
    Dernier message: 18/03/2010, 21h33
  3. Réponses: 1
    Dernier message: 23/12/2007, 20h08
  4. Comment m'assurer que mon fichier est bien un exec unix
    Par Khaled.Noordin dans le forum Apple
    Réponses: 5
    Dernier message: 05/07/2007, 18h37
  5. [XML]Comment tester que mon fichier XML est comme ceci?
    Par Devil666 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2005, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo