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 :

readline // Définir ligne de départ


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut readline // Définir ligne de départ
    Bonjour,

    J'ai un petit problème qui de base m'a paru simple, mais qui me bloque complétement.

    J'aimerais que le readline commence à un numéro de ligne défini...

    En fait il parcourt un fichier log qui peut contenir des 10ene des milliers de lignes.
    Hors si on éteint / relance le script, celui-ci reprend à la ligne 0.

    J'ai trouvé des piste avec "linecache", mais j'ai pas réussi à l'exploiter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fp = open('games.log', 'r')
     
    while True:
        new = fp.readline()
        if new:
            print new
    Pour le numéro de ligne, j'avais mis un simple compteur qui s'incrémente... mais le problème reste le même.

    Merci d'avance.


  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Si tu places ces lignes dans une fonction génératrice les lignes du fichier seront lues à la demande sans remise à zéro.

    Evidement, la lecture du fichier commencera toujours à la première ligne.

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 078
    Par défaut
    Fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> def read(name, start, stop=-1):
    ...     with open(name, 'r') as f:
    ...         if stop < 0 or stop < start:
    ...             res = f.readlines()[start-1:] # de ligne start à la fin du fichier
    ...         else:
    ...             res = f.readlines()[start-1:stop] # de ligne start à ligne stop
    ...     return res


    Utilisation
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> read("test.txt", 2, 5) # lecture du fichier entre ligne 2 et 5 inclus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> read("test.txt", 2) # lecture du fichier entre ligne 2 et la fin du fichier
    Bonne continuation...

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut
    En fait j'ai utilisé "newline = file("game.log", "r").readlines()[-1]" dans une boucle infini, avec comparaison du dernier résultat pour éviter un affichage multiple.

    Sa répond mieux à mes besoins d'analyse en temps réels.

    Néanmoins, je vais quand même avoir besoin du reste pour mes objectifs futur.

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2012, 13h16
  2. Réponses: 0
    Dernier message: 18/01/2012, 17h53
  3. Définir ligne Textbox comme Variable
    Par AZzjeioafh dans le forum VB.NET
    Réponses: 8
    Dernier message: 12/04/2010, 17h55
  4. Définir le numéro de ligne d'un spreadsheet sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/02/2006, 09h35
  5. Réponses: 2
    Dernier message: 18/11/2005, 21h40

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