Bonjour a tous,
Je debute en Python, ma question va surement sembler tres basique.
Je dispose d'un fichier texte txtfile qui est dispose de la maniere suivante:
' Burnups
0.00000E+00 2.00000E-02 2.00000E-01 5.00000E-01
1.25000E+00 1.50000E+00 1.7500E+00 2.00000E+00
0.00000E+00 2.00000E-02 2.00000E-01 5.00000E-01
3.25000E+00 1.50000E+00 6.7500E+00 2.00000E+00
4.00000E+00 2.00000E-02 7.00000E-01 5.00000E-01
5.25000E+00 1.50000E+00 8.7500E+00 22.0000E+00
' Time
0.0000E+00
'Power
3.30000E+01
Je souhaiterais obtenir toutes les valeurs, de maniere individuelles, situees entres le flag " ' Burnup" et " ' Time", comme il suit:
0.00000E+00
2.00000E-02
2.00000E-01
5.00000E-01
1.25000E+00
.
.
.
8.75000E+02
22.0000E+02
et dans une derniere etape changer les valeurs qui sont en ecriture scientifique en nombres reels:
0.0000
0.0200
0.2000
0.5000
1.2500
.
.
.
87.500
2200.0
Voila la maniere par laquelle je procede:
a ce stade j'obtiens:
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 infile = open(txtfile,"r") scale_lines = infile.readlines() flag_1 = "' Burnups" index_1 = 0 for index_1, locate_bu in enumerate(scale_lines): match = re.search(flag_1,locate_bu) if match != None: break index_1 = index_1 + 1 #Cette boucle for m'indique a quelle ligne se trouve le flag "' Burnup" flag_2 = "' Time" index_2 = 0 for index_2, locate_bu in enumerate(scale_lines): match = re.search(flag_2,locate_bu) if match != None: break index_2 = index_2 - 1 #cette boucle for m'indique a quelle ligne se truove le flag "' Time" #jusque la, cela semble bien fonctionner list3 =[] newlist=[] for bu_values in enumerate(scale_lines[index_1:index_2]): list3 = list (bu_values)
je continue donc, dans ma boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 [0, ' 0.00000E+00 2.00000E-02 2.00000E-01 5.00000E-01 \n'] [1, ' 1.25000E+00 1.50000E+00 1.7500E+00 2.00000E+00 \n'] [2, ' 0.00000E+00 2.00000E-02 2.00000E-01 5.00000E-01 \n'] [3, ' 3.25000E+00 1.50000E+00 6.7500E+00 2.00000E+00 \n'] [4, ' 4.00000E+00 2.00000E-02 7.00000E-01 5.00000E-01 \n'] [5, ' 5.25000E+00 1.50000E+00 8.7500E+00 22.0000E+00 \n']
j'ai alors l'erreur suivante: AttributeError: 'int' object has no attribute 'split'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for bu_values in enumerate(scale_lines[index_1:index_2]): list3 = list (bu_values) for i in list3: newlist.append(i.split()[0])
Avez vous une solution a mon erreur, ou plus simplement, quelles solutions existe-t-il pour resoudre une situation ?
Merci pour votre aide
Partager