Bonjour,
Excusez-moi je suis débutant en python et je suis vraiment bloqué a ce niveau là
le but du code est de supprimer les premières lignes du fichier texte et de supprimer l'espace qui est avant chaque mesure.
Merci d'avance
Bonjour,
Excusez-moi je suis débutant en python et je suis vraiment bloqué a ce niveau là
le but du code est de supprimer les premières lignes du fichier texte et de supprimer l'espace qui est avant chaque mesure.
Merci d'avance
c'est payer combien? Parce que présenté comme ça...
Le forum est près à vous aidez mais il fait de votre côté vous nous montrez que vous avez tenté quelque chose.
Montrez votre code et là où sa bloque, et on fera avancer le code
Merci pour votre réponse
du coup, je suis nouveau c'est pour ça je ne sais pas encore comment ça passe les choses ici.
Mon idée est d'utiliser l'expression 'X_Value Voltage Comment' pour avoir supprimer les précédentes lignes.
donc j'ai pensé à utiliser la fonction split.
pour le deuxième problème j'ai pensé à remplacer "\t" par ""
Mon code est le suivant (mais ne fonctionne pas ):
txt = data.split("X_Value Voltage Comment")[-1].split("\n")
output_numbers = [float(valeur.replace("\t","")) for valeur in txt if valeur]
Utilisez les balises codes pour plus de lisibilité
pour vous aider ils me faut toutes les cartes en main, le fichier contenant les mesures (un copier collé aurait été plus efficace qu'un screen) vous l'obtenez comment ? with open() as.. j'imagine ?
plutôt que de vouloir condenser en 1 seul ligne le traitement des nombres n'es t'il pas mieux de faire pas à pas ?
Votre erreur ne semble pas être dans les 2 lignes postées.
voila mon fichier:
data.txt
et mon code :
txt = data.txt.split("X_Value Voltage Comment")[-1].split("\n")
output_numbers = [float(valeur.replace("\t","")) for valeur in txt if valeur]
personnellement j'ai pas pu trouver l'erreur
voila mon fichier:
data.txt
et mon code :
txt = data.txt.split("X_Value Voltage Comment")[-1].split("\n")
output_numbers = [float(valeur.replace("\t","")) for valeur in txt if valeur]
personnellement j'ai pas pu trouver l'erreur
Ben il faut la chercher! Déjà si vous écrivez txt = data.split("X_Value Voltage Comment")[-1].split("\n"), il faut vous assurer que data.split("X_Value Voltage Comment") retourne bien une liste à deux éléments, puis que data.split("X_Value Voltage Comment")[-1].split("\n") vous fabrique bien un tableau qui ressemble aux flottants attendus.
Vous avez la commande magique "print" pour visualiser tout çà ou bien lancer la console Python et effectuer chacune des étapes à la main (et contrôler que çà se passe bien).
- W
Bonjour,
Voilà un petit code qui peut te servir de source d'inspiration (Python 3.5):
Ce qui affiche les nombres convertis en flottant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with open("data.txt", "r") as fs: ok = False for ligne in fs: if not ok: if ligne.startswith("X_Value"): ok = True else: nb = float(ligne.strip().replace(',', '.')) print(nb)
La variable booléenne ok permet de distinguer les lignes avant et après le "X_Value".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 0.427676 0.427027 0.427676 ... 0.427351 0.427351 0.427676
La méthode .strip() appliquée à une chaine supprime les caractères blancs (espace, tab, \n, ...) avant et après la chaine.
La méthode .replace(...) remplace la virgule par le point décimal, sinon, la conversion avec float serait en erreur.
Comme je ne sais pas ce que tu veux faire des nombres flottants, je me suis contenté de les afficher.
Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
Mes recettes python: http://www.jpvweb.com
voici le code que je propose, il ne doit pas être parfait, surement même d'ailleurs, mais voila :
ps: c'est de la triche su tu n'arrive pas à tes fins sans
Bonjour,
En fait, il suffit juste de ne prendre en compte que les lignes avec uniquement un nombre décimal ou l'on ne capture que le nombre (et on change la virgule en point) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 import re regex = re.compile("^\s*([0-9][0-9,]*)$") with open("fichier.txt", "r") as fs: for line in fs: m=regex.search(line) if m: print(m.group(1).replace(",","."))
Cordialement.
Je ne comprends pas trop, quel espace ?
Ici, je ne capture que les nombres et la virgule, pas les espaces...
Cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager