Menu

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

- - Dernière réponse : Breizhux
Messages postés
354
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
14 juillet 2019
- 12 juil. 2019 à 14:51
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
Afficher la suite 

1 réponse

Messages postés
354
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
14 juillet 2019
55
0
Merci
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 !
theo1510
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
theo1510
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
Breizhux
Messages postés
354
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
14 juillet 2019
55 -
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.
theo1510
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
Breizhux
Messages postés
354
Date d'inscription
vendredi 1 septembre 2017
Statut
Membre
Dernière intervention
14 juillet 2019
55 -
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 :
Commenter la réponse de Breizhux