obtenir une liste de valeurs a partir d'un tableau
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:
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
|
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) |
a ce stade j'obtiens:
Code:
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'] |
je continue donc, dans ma boucle
Code:
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]) |
j'ai alors l'erreur suivante: AttributeError: 'int' object has no attribute 'split'
Avez vous une solution a mon erreur, ou plus simplement, quelles solutions existe-t-il pour resoudre une situation ?
Merci pour votre aide