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 à 22h03. Motif: ajout balises code

  2. Publicité
  3. #2
    Jack

    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 à 21h21.

  4. #3
    kid54

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

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

  5. #4
    Jack

    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 à 21h48.

  6. #5
    Jiav

    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
    L'été vient.

  7. A voir en vidéo sur Futura
  8. #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.

  9. Publicité
  10. #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.
    Daudet, tu vas nous manquer...

  11. #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.

  12. #9
    kid54

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

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

  13. #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) )

  14. #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()) .

  15. #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 à 13h34. Motif: Remplacement des balises quote par code

  16. Publicité
  17. #13
    kid54

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

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

Sur le même thème :

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, 16h17
  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, 15h36
  3. Creer une liste sur mathématica à partir d'un fichier excel
    Par paradise295 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/05/2008, 18h04
  4. Extraire fichier MP3 d'une liste de lecture M3U
    Par lemoal1974 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 20/01/2006, 21h03