Bonjour à tous,
Je tiens déjà à vous remercier pour toutes les réponses que j'ai pu trouver sur ce site concernant différents soucis avec Python.
J'ai un petit souci avec Python, à vrai dire, je ne sais pas comment récupérer de la manière adéquate des valeurs d'un fichier .txt.
Si vous voulez, je réalise une optimisation de coûts, avec un autre logiciel, au pas horaire sur une année (8760 points) et je récupère le fichier solution avec Python.
Les variables que je veux récupérer sont : v1, v2 et v3, ..., v6 qui sont définies pour chaque pas de temps. Lorsqu'elles sont activées j'ai un certain pourcentage, et lorsqu'elles ne le sont pas, les valeurs ne sont pas affichées dans mon .txt. J'ai donc des résultats de la forme
v1[250] 68
v1[2850] 80
v1[3550] 0.5
.......
v2[2] 10
v2[2508] 75
v2[4000] 45
v2[5466] 10
v2[6528] 22
v2[7053] 88
......
ainsi de suite.
J'ai rentré ce code :
Le problème c'est que dans mon fichier csv, ça me sort les valeurs à partir de la première ligne.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 def resultatsV1(): res = np.genfromtxt("sorties.txt", dtype=str, delimiter=';') valeur = [] for row in res[2:len(res)-1]: ligne = row.split() if ligne[1].split("[", 1)[0]=='v1': ## index.append(ligne[1].split("[", 1)[1].split("]", 1)[0]) valeur.append(ligne[2]) d = {'valeur':valeur} return pd.DataFrame(d) def resultatsV2(): res = np.genfromtxt("sorties.txt", dtype=str, delimiter=';') valeur = [] for row in res[2:len(res)-1]: ligne = row.split() if ligne[1].split("[", 1)[0]=='v2': valeur.append(ligne[2]) d = {'valeur':valeur} return pd.DataFrame(d) # ......ainsi de suite, la même chose pour les 4 autres variables res_V1 = resultatsV1()['valeur'] res_V2 = resultatsV2()['valeur'] export['valeur1'] = res_V1 export['valeur2'] = res_V2 export.to_csv(RACINE+"res/resultats_calcul.csv", sep = ';')
C'est-à dire, si j'ai :
v1[250] 80
puis
v1[4502] 63,
ça me met ses deux valeurs à la suite, comme si elles avaient lieu à des pas horaires consécutifs, alors que je voudrais qu'elles apparaissent à la ligne 250, puis à la ligne 4502.....
Voilà, je ne sais pas trop comment modifier mon code.
Merci pour vos réponses.
Partager