#1 Le 22/11/2009, à 17:23
- Geoffrey35
[Python] charger une liste à partir d'un fichier
Bonjour,
Bon, je suis désespéré de trouver une solution à mon problème;
J'ai un fichier avec 2 colonnes de réels que je souhaite charger dans une liste.
J'ai essayé:
data = scipy.io.array_import.read_array('fichier.dat')
Mais il me dit que c'est obsolete.
J'ai essayé:
f=file("fichier.dat","r")
data1=[line.split() for line in f]
f.close()
data=array(data1)
Mais il me met un tableau de chaine au lieu d'un tableau de réel.
Si quelqu'un a eu le même problème que moi, faites moi parvenir votre solution.
Merci par avance!
Ubuntu, c'est pas non plus...
Hors ligne
#2 Le 22/11/2009, à 19:22
- Geoffrey35
Re : [Python] charger une liste à partir d'un fichier
up, please
Ubuntu, c'est pas non plus...
Hors ligne
#3 Le 22/11/2009, à 23:31
- BadZoot
Re : [Python] charger une liste à partir d'un fichier
Une fois que tu as créé ta chaine data1 qui ne contient que des string représentant des float, tu peux ajouter quelques lignes du genre :
for i in range(len(data1)):
data1[i] = float(data[i])
EDIT:
J'ai posté en testant sommairement ma réponse.
Dans ton cas, tu as une liste qui contient des sous-listes.
Ces sous-listes contiennent des string représentant des floats.
Ceci serait plus approprié :
for i in range(len(data1)):
for j in range(len(data1[i])):
data1[i][j] = float(data1[i][j])
J'ai essayé de voir si on pouvait 'floater' tes valeurs au niveau de la ligne :
data1 = [line.split() for line in f]
Mais je ne vois pas comment.
Recherches en cours. Est-ce au moins possible?
Dernière modification par U-toyen (Le 23/11/2009, à 00:03)
Le pervers père de Pierre perd son imper' vert.
No, I am Zoot's identical twin-sister : Dingo.
Hors ligne
#4 Le 23/11/2009, à 09:13
- Geoffrey35
Re : [Python] charger une liste à partir d'un fichier
Ok, merci, je teste dès que j'ai un quart d'heure.
Ubuntu, c'est pas non plus...
Hors ligne
#5 Le 23/11/2009, à 11:31
- roynux
Re : [Python] charger une liste à partir d'un fichier
Bonjour,
f=file("fichier.dat","r") data1=[line.split() for line in f] f.close() data=array(data1)
tbl = []
f=file("fichier.dat","r")
for line in f:
tbl.append([float(x) for x in line.split()])
f.close()
print tbl
Et je pense qu'avec numpy, c'est plus simple, mais je ne connais pas bien.
Hors ligne