Traitement d'un fichier texte par python
Résolu
Bonjour,
Je me suis bloqué dans mon code.... Je dois exploiter les données dans un fichier texte pour les traiter.
Premièrement je dois calculer pour chaque ensemble de mesures la moyenne de ces valeurs (il ne faut pas prendre en compte les valeurs nulles) qui ont séparés par $.
Voila un petit exemple de mon fichier:
Et voilà mon code mais j'ai pas pu avancer malheureusement
... où n est le nombre des lignes non vides (je calcule n pour d'autre calculs )
Merci d'avance
Je me suis bloqué dans mon code.... Je dois exploiter les données dans un fichier texte pour les traiter.
Premièrement je dois calculer pour chaque ensemble de mesures la moyenne de ces valeurs (il ne faut pas prendre en compte les valeurs nulles) qui ont séparés par $.
Voila un petit exemple de mon fichier:
$
0.111110
0.313569
0
0.004442
0.121211
0.112812
1.222312
0
0.121215
$
0
0.122311
0.013565
0.004447
0.121211
0.121212
1.222312
0
0.121215
$
0.121454
0.345456
0
0.078444
Et voilà mon code mais j'ai pas pu avancer malheureusement
import numpy as np f = open ( 'fichier.txt' , 'r') #On split par le caractere $ et on prend pas le premier caractere en consideration for f in f.read().split("$"): n = 0 # On split par \n pour prendre ligne par ligne et prend pas le premier ligne D = f.split("\n")[1:] for line in D: # On passe ligne par ligne # On verifie est ce que la ligne n'est pas vide if line not in ('\n', '\r\n', " \n",''): n = n + 1
... où n est le nombre des lignes non vides (je calcule n pour d'autre calculs )
Merci d'avance
A voir également:
- Extraire données fichier texte python
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Extraire une video youtube - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
Bonjour,
À ce stade ton code est mal indenté, ce qui explique pourquoi il ne marche pas :
Voici ton programme corrigé et légèrement amélioré :
À l'exécution, on a bien le résultat attendu :
Bonne chance
À ce stade ton code est mal indenté, ce qui explique pourquoi il ne marche pas :
(mando@aldur) (~) $ python3 toto.py
File "toto.py", line 13
n = n + 1
^
IndentationError: expected an indented block
Voici ton programme corrigé et légèrement amélioré :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- with open("fichier.txt" , "r") as f: # On split par le caractère $ et on prend pas le premier caractère en considération for f in f.read().split("$"): n = 0 # On split par \n pour prendre ligne par ligne et prend pas le premier ligne D = f.split("\n")[1:] for line in D: # On passe ligne par ligne line = line.strip() if line: # Si la ligne est non vide n = n + 1 print("line = %s" % line)
À l'exécution, on a bien le résultat attendu :
(mando@aldur) (~) $ python3 toto.py
line = 0.111110
line = 0.313569
line = 0
line = 0.004442
line = 0.121211
line = 0.112812
line = 1.222312
line = 0
line = 0.121215
line = 0
line = 0.122311
line = 0.013565
line = 0.004447
line = 0.121211
line = 0.121212
line = 1.222312
line = 0
line = 0.121215
line = 0.121454
line = 0.345456
line = 0
line = 0.078444
Bonne chance
dino.adnane
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup pour votre aide
mamiemando
Messages postés
33769
Date d'inscription
Statut
Modérateur
Dernière intervention
7 878
De rien, bonne continuation :-)