1 pièce(s) jointe(s)
Problème lecture de fichier python
Bonjour à tous,
Bon voilà j'essaye de faire un programme qui créer un "treillis" (élément de structure mécanique) à partir de données entrées dans un fichier texte.
Dans un premier temps j'ai rentré les données "Noeuds" ( identifiant du noeud, coordonnées x et y ) me permettant de créer les noeuds à partir de ma classe Noeud en lisant le fichier.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #!/usr/bin
# -*- coding: utf-8 -*-
import numpy as np
import numpy.linalg as npla
import elements as ef
import math as m
def Lecture(src):
headline = src.readline().rstrip('\n\r').split("|")
Idt_Noeud = headline.index("Idt Noeud")
coord_x=headline.index("coord x")
coord_y=headline.index("coord y")
#Lecture et création des noeuds (Creation of the Nodes by reading the "Données_Utilisateur.txt" file)
i=0
n=[0,0,0,0,0,0,0]
for ligne in src:
data= ligne.rstrip('\n\r').split("|")
n[i]=(ef.Noeud(data[Idt_Noeud],data[coord_x],data[coord_y]))
i=i+1
return n
# TEST: print the nodes' id and coordinates
source= open("Données_Utilisateur.txt", "r")
n=Lecture(source)
l=len(ef.dicoNoeud)
for i in range (l):
print"idt n°",i+1,":",n[i].idt,"x:",n[i].x,"y:",n[i].y,"\n"
source.close() |
et le fichier Données_Utilisateur.txt
"
Idt Noeud|coord x|coord y
1|0.00|0.00
2|0.85|0.85
3|1.70|0.00
4|2.55|0.85
5|3.40|0.00
6|4.25|0.85
7|5.10|0.00
"
Mon programme fonctionne à condition que "Idt Noeud|coord x|coord y" reste à la première ligne et je cherche un moyen pour que mon programme trouve cette ligne automatiquement.
J'ai essayé ceci :
Code:
1 2 3 4 5 6 7 8 9
| def Lecture(src):
Noeud="Idt Noeud|coord x|coord y"
for ligne in src:
if Noeud in ligne
break
else:
print"cherche encore"
headline = src.readline().rstrip('\n\r').split("|")
print"",headline |
Mais çe ne fonctionne pas et je galère depuis quelques heures déjà ^^'.
En éspèrant avoir été assez clair, merci par avance de votre aide.