Récupérer des données d'un fichier texte [Résolu/Fermé]

Signaler
-
Messages postés
365
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
10 mars 2020
-
Bonjour,

Je souhaite réaliser un script python me permettant de récupérer les données lignes par lignes d'un tableau (fichier .txt) afin de les traiter et de les écrire dans un nouveau fichier txt.

Le tableau est simple (environ 3 colonnes) et je cherche à récupérer chaque lignes afin de faire la moyenne des 3 valeurs et d'en suite écrire le résultat dans un nouveau tableau (à une seule colonne)

Je cherche comment arriver a récupérer ces valeurs la..

Merci


Configuration: Windows / Chrome 75.0.3770.100

1 réponse

Messages postés
365
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
10 mars 2020
99
Il faut ouvrir le fichier puis le lire. Pour ça :
# On ouvre le fichier en mode 'read' :
fichier = open("emplacement/du/fichier.txt", 'r')
# On lis le fichier :
contenu_du_fichier = fichier.readlines()


et toute tes valeurs se trouveront dans la valeur "contenu_du_fichier".

Bonne journée !
Messages postés
6
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
12 juillet 2019

woaw super je vais me pencher sur cette solution ;) merci a toi encore une fois
Messages postés
6
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
12 juillet 2019

for ligne in liste_des_lignes :

a quoi correspond : liste_des_lignes
Messages postés
365
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
10 mars 2020
99
C'est juste la liste des lignes lu dans le fichier a à l'aide de readlines(). C'est pareil que ta variable ligne dans le programme précédent.
Messages postés
6
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
12 juillet 2019

ligne = source.readlines()
longueur = len(ligne)

Ligne_coupe_en_colonne  = []

for ligne in ligne :
    ligne_coupe = ligne.split("\t")
    Ligne_coupe_en_colonne.append(ligne_coupe)


colonne_deux_au_debut = []
for i in Ligne_coupe_en_colonne :
    nouvel_ordre = [i[1],i[2],i[3],i[4],i[0]]
    colonne_deux_au_debut.append(nouvel_ordre)


colonne_deux_au_debut = colonne_deux_au_debut.sort()


liste_triees = []
for i in colonne_deux_au_debut :
    ligne_reforme = str(i[0]) + "\t" + str(i[1]) + "\t" + str(i[2]+ "\t" + str(i[3]+ "\t" + str(i[4])
    liste_triees.append(ligne_reforme)

destination.write(liste_triees)




je pense me tromper sur le premier for
Messages postés
365
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
10 mars 2020
99
Tu as mis "ligne = source.readlines()" puis "for ligne in ligne". Il y a donc deux variables différentes mais avec le même nom. Il faut les distinguer en mettant par exemple :
#ligne avec un S (parce que il y en a plusieurs ;)
lignes = source.readlines()
#Puis on utilise par exemple ligne pour la ligne dont on va s'occuper pendant la boucle.
for ligne in lignes :