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 :

methode READLINE() problème


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 51
    Par défaut methode READLINE() problème
    bonjour,
    je voudrais savoir comment faire pour lire la deuxieme ligne apres celle que j'ai stocké dans ma liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    fichier = open("dimethylether.log", "r")
    contenu = fichier.split()
    chaine = "Standard orientation"
     
    Za = []
    X = []
    Y = []
    Z = []
     
    for line in fichier:
      if chaine in line:
        Za.append((line+2).split())
     
    # c'est au niveau de l'expression line+2 qui marche pas, comment je peux faire pour stocker la deuxieme ligne apres mon line.
    merci pour votre aide

  2. #2
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Bonjour,
    De toute évidence vous débutez en python. Je vous propose un bout de code non testé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
     
    lines = open("dimethylether.log", "r").readlines()
    chaine = "Standard orientation"
     
    Za = []
     
    for i, line in enumerate(lines):
        if chaine in line:
            Za.append(lines[i + 2])
     
    print Za
    Je vous suggère de le comprendre avec l'aide de l'index de la doc.
    Notez que ce code n'est pas bétonné par rapport aux erreurs (fichier qui n'existe pas, index i + 2 trop grand ...). Les exceptions feront ce travail à votre place, c'est tout à fait défendable quand on se fait rapidement des outils pour son propre usage.

  3. #3
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    entre ces deux lignes, il manque la méthode readlines()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = open("dimethylether.log", "r")
    for line in fichier:
    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier = open("dimethylether.log", "r")
    for line in fichier.readlines():
    ou comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lines = open("dimethylether.log", "r").readlines()
    for line in lines:
    Comme quoi, un nom de variable bien choisi...

    A+

    Pfeuh

  4. #4
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonjour,
    for line in fichier:
    if chaine in line:
    Za.append((line+2).split())
    Il se trouve qu en Python les chaines sont en lecture seule. De plus, tu ne peux pas concatener des chaines et des entiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Za.append((line+2).split())
    En reprenant le code de Pierre Maurette.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
     
    try:
        lines = open("dimethylether.log", "r").readlines()
        err = 0
    except:
        print "Impossible d ouvrir le fichier"
        err = 1
     
    if not err:
        chaine = "Standard orientation"
        Za = []
        max = len(lines)
        for i, line in enumerate(lines):
            if (chaine in line) and (i+2<max):
                Za.append(lines[i + 2])
     
        print Za
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

Discussions similaires

  1. methode readline de BufferedReader se bloque
    Par m3allem001 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 04/10/2013, 18h45
  2. [METHODE B] Problème d'incompatibilité
    Par nexin dans le forum Autres
    Réponses: 2
    Dernier message: 05/12/2009, 18h11
  3. Problème methode readline
    Par dark0502 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 18/03/2009, 22h52
  4. probleme avec la methode readline
    Par konguess dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/11/2007, 12h06
  5. Probleme avec la methode readLine()!
    Par thenightmare1985 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 26/10/2006, 20h00

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