J'ai un fichier dans lequel les valeurs sont en notation scientifique 3.198304894802781462E + 00. Je veux les convertir en entiers. J'ai essayé ceci: erreur: p>
3 Réponses :
Vous pouvez utiliser le gestionnaire de contexte à lire à partir de votre fichier: si vous souhaitez ajouter la liste de données à votre fichier: p> with open('data.txt', 'a') as fp:
fp.write(",".join(str(e) for e in data))
Vous souhaitez ajouter dans le fichier la liste code> data code>?
@tallarsat essayer maintenant
Son SyntaxError: EOF inattendu lors de l'analyse
@tallarsat, j'ai juste oublié de fermer la dernière parenthèse, essayez maintenant
Essayez quelque chose comme ça. Vous devez diviser la chaîne puis appliquer la fonction de flotteur sur chaque élément: ou simplement: p> J'ai supposé que vous avez Vos données en tant que chaîne, mais de votre exemple, cela devrait fonctionner: P> data = [int(float(number))
for line in open('data.txt', 'r')
for number in line.split(',')]
Jugement par votre message d'erreur, vos numéros sont délimités par , code>, pas blancheur. Vous devez donc utiliser
line.split (',') code> à la place.
with open('data.txt', 'r') as in_stream:
data = [
int(float(number))
for line in in_stream
for number in line.split(',')
]
Vous avez juste besoin d'omettre les 4 dernières lettres (E + 01)?
Vous devez diviser sur
, code>, pas blouses.
Êtes-vous vraiment sûr de vouloir des entiers de ce jeu de données? La notation scientifique peut ne pas être le seul problème que vous pourriez avoir avec cela. Vous jetez un tas de chiffres. Votre premier numéro,
1.874475383557408747e + 01 code> est en notation non scientifique,
18.74475383557408747 code>. Êtes-vous sûr que tous ces chiffres après la décimale ne sont pas significatifs?