liste de données à partir d’un fichier
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

liste de données à partir d’un fichier



  1. #1
    kid54

    liste de données à partir d’un fichier


    ------

    Bonjour,
    Je dois créer deux listes t (le temps) et p (une proportion) à partir d’un fichier «*sondage.dat*» où sont donnés ti,pi dans cet ordre.
    Je n’arrive pas à lire le fichier de manière à séparer t et p.
    J’ai essayé ça :
    Code:
    t=[]
    p=[]
    fichier=open(‘sondage.dat’,’r’)
    for ligne in fichier :
        i=0
        T=«*»
        P=«*»
        while i<len(ligne) :
            if i%2==0: #le rang des t dans le fichier est pair
                T=T+ligne[i]
                i+=1
            else : #le rang des p est impair
                P=P+ligne[i]
                i+=1
        t.append(T)
        p.append(P)
    print(‘temps’,t,’proportion’,p)
    fichier.close()


    Je n’obtiens aucune proportion et les valeurs du temps ne sont pas les mêmes que celles dans le fichier.
    Pouvez-vous m’éclaircir s’il vous plaît ?

    -----
    Dernière modification par Jack ; 27/10/2019 à 21h03. Motif: ajout balises code

  2. #2
    Jack
    Modérateur

    Re : liste de données à partir d’un fichier

    Bonjour, des personnes vont donner un peu de leur temps pour te lire et éventuellement t'aider.

    Alors, il serait bon que par respect pour celles-ci, tu en donnes également pour lire les consignes de ce forum, en précisant donc le langage utilisé.

    Merci.
    Dernière modification par Jack ; 27/10/2019 à 20h21.

  3. #3
    kid54

    Re : liste de données à partir d’un fichier

    C’est du langage python, je travaille sur la version 3.8

  4. #4
    Jack
    Modérateur

    Re : liste de données à partir d’un fichier

    Très bien, mais je vois que tu n'as toujours pas lu les consignes complètes de ce forum notamment concernant la présentation du code. Du python sans indentation ...
    Dernière modification par Jack ; 27/10/2019 à 20h48.

  5. A voir en vidéo sur Futura
  6. #5
    invite73192618

    Re : liste de données à partir d’un fichier

    Citation Envoyé par kid54 Voir le message
    C’est du langage python, je travaille sur la version 3.8
    Utilise panda et ajoute les balises code @faq

  7. #6
    CM63

    Re : liste de données à partir d’un fichier

    Bonjour,

    Cela me semble bon, mais là tu récupères des chaînes de caractères, si tu veux des nombres, au lieu de faire T=T+lignes(i), il vaudrait mieux faire t.append(string.atof(lignes(i) ) . Il faut importer string au départ.

  8. #7
    polo974

    Re : liste de données à partir d’un fichier

    ta boucle for parcoure ligne par ligne, donc pas besoin d'indice de ligne (vire les [i] (et la variable i))
    éventuellement strip ta ligne pour virer le retour à la ligne.
    Jusqu'ici tout va bien...

  9. #8
    CM63

    Re : liste de données à partir d’un fichier

    En fait, si j'ai bien compris, son fichier contient une alternance de t et p :
    t1
    p1
    t2
    p2

    Et donc il a besoin de cet indice et il calcule le modulo pour savoir si c'est un t ou un p qu'il lit.

  10. #9
    kid54

    Re : liste de données à partir d’un fichier

    D’accord merci !
    À quoi sert string.atof ?
    On ne l’a jamais utilisé.

  11. #10
    Tryss2

    Re : liste de données à partir d’un fichier

    C'est une fonction qui converti une chaine de caractère en float. Mais c'était déjà obsolète en Python 2... On utilisera donc plutôt float(lignes(i) )

  12. #11
    CM63

    Re : liste de données à partir d’un fichier

    Tryss2 a raison, utilise plutôt float(lignes[i]) si tu es en Python3. Si il ne trouve que des 0, ça peut venir des caractères en fin de ligne, il faut les supprimer grâce à la fonction strip() donc en fait prendre float(lignes[i].strip()) .

  13. #12
    kid54

    Re : liste de données à partir d’un fichier

    Merci pour toutes vos réponses.

    J'ai retiré les indices i et essayé avec string mais les valeurs étaient incohérentes. J'ai donc testé avec float:


    Code:
    t=[]
    p=[]
        
    fichier=open('sondage.dat','r')
    fichier.readline()
    for lignes in fichier:
    if lignes%2==0:
    t.append(float(lignes)) lignes+=1
    else:
    p.append(float(lignes)) lignes+=1
    print(t,p) fichier.close()
    Mais j'obtiens des listes vides (avec ou sans float(lignes[i].strip()) ).
    Dernière modification par Antoane ; 29/10/2019 à 12h34. Motif: Remplacement des balises quote par code

  14. #13
    kid54

    Re : liste de données à partir d’un fichier

    J'ai retravaillé le programme et il tourne. Merci pour votre aide.

Discussions similaires

  1. Creer un fichier bmp a partir de données
    Par joe_mimi dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 28/02/2013, 15h17
  2. Écrire dans un fichier à partir de données d'un tableau
    Par dalfred dans le forum Programmation et langages, Algorithmique
    Réponses: 15
    Dernier message: 17/11/2012, 14h36
  3. Creer une liste sur mathématica à partir d'un fichier excel
    Par invite30fe8374 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/05/2008, 17h04
  4. Extraire fichier MP3 d'une liste de lecture M3U
    Par invitef47e13a5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 20/01/2006, 20h03