Recuperer x et y pour j fichiers
ekip667
Messages postés
8
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
Je sais comment récuperer les valeurs x et y d'un fichier csv/dat/txt par exemple comme ceci :
Mais depuis un moment j'essaie de récuperer les valeurs x_j et y_j des fichier "Fichier_j.dat" pour cela je passe par des dictionnaires car comme cela si j'ai deux fichiers : Fichier_0.dat et Fichier_1.dat j'aurais : x[0] = [les valeurs de x du fichier_0.dat]
y[0] = [les valeurs de y du fichier_0.dat]
x[1] = [les valeurs de x du fichier_1.dat]
y[1] = [les valeurs de y du fichier_1.dat]
J'ai donc écris ceci mais cela me donne les valeurss de x et y du fichier 0 et cela me dit j = 97 (j'ai 100 valeurs dans mon fichier) :
Merci de votre aide, je bloque réelement sur ce point
Je sais comment récuperer les valeurs x et y d'un fichier csv/dat/txt par exemple comme ceci :
def lire(file,n = 0,enc = 'utf-8'):
x,y = [],[]
with open(file,'r',encoding = enc) as file:
i = 0
for k in file:
if i >= n:
ligne = k.split(" ")
y.append(float(ligne[2]))
x.append(float(ligne[1]))
i = i+1
return y,x
y,x=lire("Fichier_0.dat",enc="latin-1")
Mais depuis un moment j'essaie de récuperer les valeurs x_j et y_j des fichier "Fichier_j.dat" pour cela je passe par des dictionnaires car comme cela si j'ai deux fichiers : Fichier_0.dat et Fichier_1.dat j'aurais : x[0] = [les valeurs de x du fichier_0.dat]
y[0] = [les valeurs de y du fichier_0.dat]
x[1] = [les valeurs de x du fichier_1.dat]
y[1] = [les valeurs de y du fichier_1.dat]
J'ai donc écris ceci mais cela me donne les valeurss de x et y du fichier 0 et cela me dit j = 97 (j'ai 100 valeurs dans mon fichier) :
nbre = 2
def lire(file,n = 0,enc = 'utf-8'):
x,y = {},{}
for j in range(0,nbre):
with open("Fichier_" +str(j)+ ".dat",'r',encoding = enc) as file:
i = 0
for k in file:
if i >= n:
ligne = k.split(" ")
x[j] = float(ligne[0])
y[j] = float(ligne[1])
i = i+1
Merci de votre aide, je bloque réelement sur ce point
Configuration: Linux / Chrome 80.0.3987.132
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, tu ne nous montres n'y comment tu appelles la fonction, ni comment tu exploites les résultats. -
oui en effet pardon j'ai fait n'importe quoi. Je viens de réecrire quelque chose mais j'ai ici le probleme que mes valeurs ne s'ajoute pas à mon dico je sais que pour une liste c'est .append mais ici je ne sais pas . Du coup j'obtiens x[0] = [derniere valeur de x de Fichier_0]
x[1] = [derniere valeur de x de Fichier_1]
y[0] = [derniere valeur de y de Fichier_0]
y[1] = [derniere valeur de y de Fichier_1]nbre = 2 x,y = {},{} n=0 for j in range(0,nbre): with open("Fichier_" +str(j)+ ".dat",'r',encoding = "latin-1") as file: i = 0 for k in file: if i >= n: ligne = k.split(" ") x[j] = float(ligne[1]) y[j] = float(ligne[2]) i = i+1
Merci encore-
je ne comprends pas pourquoi tu ne continues pas la même technique avec append.
exemple:nbre = 2 x,y = [[]],[[]] n=0 for j in range(0,nbre): x.append y.append print("=== ",x,y,"===") i = 0 for k in range(0,nbre+3): if i >= n: print(x,j,y) x[-1].append( "x "+str(j)+" "+str(k)) y[-1].append( "y "+str(j)+" "+str(k)) i = i+1 print(x,y)
-
-
Je viens d'ecrire ça donc je recupere dans une liste et je transfére dans un dictionnaire mais le probléme c'est que ma liste contient les x et y des deux fichiers (pour j=0 et j=1) donc mon dictionnaire est deux fois plus grand avec des doublons dans les valeurs .
nbre = 2 x,y = {},{} xx = [] yy = [] n=0 for j in range(0,nbre): with open("Fichier_" +str(j)+ ".dat",'r',encoding = "latin-1") as file: i = 0 for k in file: if i >= n: ligne = k.split(" ") xx.append(float(ligne[1])) yy.append(float(ligne[2])) x[j] = xx y[j] = yy i = i+1