HELP problème avec un fichier texte et la fonction split
Bonjour,
Je voudrais créer un programme qui à partir d'un nom d'atome entrée par l’utilisateur, cherche ce nom dans un fichier texte et récupère des données sur cet atome pour les réutiliser dans un calcul et afficher le résultat. Il faudra donc qu'il scanne ligne à ligne le fichier bibliothèque jusqu’à trouver le bon atome.
Je suis grande débutante dans le monde de la programmation et de python.
voilà comment je voulais faire :
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 27 28 29 30 31 32 33 34 35 36 37 38 39
|
from math import log, exp
file = open("bib.txt", "w")
file.write("Tr 12,32 3,016049268")
x = int(input("nb delement"))
t = input("cb dannée")
Na = 6.022e+23
file2 = open("resultats.csv", "w")
file2.write("A\n")
i = 0
A = 0
while i < x:
file = open('bib.txt', 'r')
tmp1 = input("quel element")
m1 = input("sa masse")
while 1:
test = file.split( )
if test == "":
break
tmp = test[i].split( )
if tmp[0] == tmp1:
M1 = float(tmp[2])
n1 = m1 / M1
No1 = n1 * Na
tdemi1 = float(tmp[1])
I1 = log(2) / tdemi1
A1 = I1 * No1 * exp(t * (-I1))
A = A + A1
file2.write(str(A1) + "\n")
file.close()
i = i + 1
print("A=", A, "Bq\n")
file2.close() |
sauf qu'au moment d'utiliser la fonction split le programme me renvoie un message d'erreur :
Traceback (most recent call last):
File "C:/Users/Elise/PycharmProjects/desintegration1.0/prg2.py", line 19, in <module>
test = file.split( )
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'
j'ai voulu utiliser la fonction readline à la place mais ça ne fonctionne pas non plus. Ou alors crée une bibliothèque sqlite mais je ne sais pas comment l'utiliser.
Voyez vous le problème ou avez vous une autre solution pour faire la même chose ?
Merci d'avance 8O
Utilsation d'un dictionnaire
Personnellement, je pense qu'il serait judicieux de charger cette liste d'atomes dans un dict a partir du fichier en question.
Les cles du dictionnaire seraient les noms d'atomes...