IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Lire un fichier pour les stocker dans un tableau multidimensionel


Sujet :

Python

  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut Lire un fichier pour les stocker dans un tableau multidimensionel
    Bonjour,

    Je souhaite lire un fichier pour stocker le contenu dans un tableau multidimensionnel pour pourvoir retravailler les données et faire des comparaison avec un autre fichier.

    Je sais qu'il existe panas, numpy, etc. J'ai essayé chacun d'entre eux; sûrement de la mauvaise façon sinon je ne serai pas ic .

    Mon fichier est du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    'TYPE 560' 'REFERENCE' 'LINE  CELL'
    '17.01.2012 08:49:03'
    'TYPE_OF_SPINDLE'
    'ERROR_NUMBER: 0x0'
    'NUMBER_OF_POINTS   ='; 174
    'Sant     =';  1.07 ;'mm IO'
    'Fgrad    =';  4.08 ;'kN IO'
    'Sgrad    =';  1.74 ;'mm IO'
    'Mgrad    =';   8.7 ;'kN/mm IO'
    'Foffs    =';  0.01 ;'kN IO'
    'Fmax     ='; 12.81 ;'kN IO'
    'Smax     =';  2.94 ;'mm IO'
    'Fgrd-    =';  4.25 ;'kN IO'
    'Sgrd-    =';  1.71 ;'mm IO'
    'Mgrd-    =';   8.7 ;'kN/mm IO'
    'Sstfg-   =';  0.61 ;'mm IO'
    'Sdgrad   =';  0.03 ;'mm IO'
     
    'mm';'kN'
     0.00; 0.63
     0.01; 0.66
     0.02; 0.69
     0.03; 0.72
     0.04; 0.75
     0.04; 0.79
     0.05; 0.83
     0.06; 0.89
     0.07; 0.94
    Et je voudrais mettre tout ça dans un tableau multidimensionnel (bien sûr sans les '...) en tenant compte du séparateur ";"

    Merci par avance pour votre aide.

  2. #2
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Salut,

    Alors effectivement numpy fait ça très bien. Quels sont les champs que vous voulez récupérer exactement ?

    Pouvez vous poster le code que vous avez essayé et qui ne fonctionne pas.

    Sinon, rapproché vous de la fonction loadtxt de numpy

  3. #3
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Tout les champs qui sont entre le séparateur ";" (avant, entre et après)

  4. #4
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    La fonction loadtxt permet de définir un séparateur de champs (dans votre cas ce sera le ";"). Vous devriez vous en sortir avec la doc.

    Postez votre code, on pourra mieux vous aider.

  5. #5
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Ci-joint mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import numpy as np
     
    df = np.loadtxt(FILE_TO_OPEN, delimiter=';') 
    print(df)

  6. #6
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Faudrait tout de même faire un effort, dans cet état des choses le code ne fait absolument rien, et vous n'avez surement pas dû le faire tourner en l'état.

    FILE_TO_OPEN n'est même pas définit.

    Qu'est ce que vous avez comme message d'erreurs ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Si mais je ne l'ai pas mis dans le code posté...

    Mon erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    df = np.loadtxt(FILE_TO_OPEN, delimiter=';')
      File "C:\Python_3.7\lib\site-packages\numpy\lib\npyio.py", line 1101, in loadtxt
        for x in read_data(_loadtxt_chunksize):
      File "C:\Python_3.7\lib\site-packages\numpy\lib\npyio.py", line 1028, in read_data
        items = [conv(val) for (conv, val) in zip(converters, vals)]
      File "C:\Python_3.7\lib\site-packages\numpy\lib\npyio.py", line 1028, in <listcomp>
        items = [conv(val) for (conv, val) in zip(converters, vals)]
      File "C:\Python_3.7\lib\site-packages\numpy\lib\npyio.py", line 746, in floatconv
        return float(x)
    ValueError: could not convert string to float:"'TYPE 560' 'REFERENCE' 'LINE  CELL'"

  8. #8
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Vos champs sont de différents types, loadtxt cherche à transformer des champs string en float, sauf qu'avec votre tableau certains champs ne peuvent pas l'être.

    Si vous lisez la doc il est indiqué comment changer le type d'une variable.

  9. #9
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Ok, mais je dois définir le dtype ligne par ligne en fonction du type?

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par Supernatural Voir le message
    Ok, mais je dois définir le dtype ligne par ligne en fonction du type?
    Vous devez découper votre fichier en sections homogènes puis les charger dans différents tableau numpy (ou autre si c'est plus approprié) en définissant le dtype si, par défaut, il ne sait pas faire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 480
    Par défaut
    Bonjour, merci de votre retour,

    Je veux une fonction qui lise de façon brut. La partie la plus importante pour moi sont les données en dessous de , je dois les utiliser pour tracer une courbe. La partie supérieur sera affichée dans un frame pour indication.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par Supernatural Voir le message
    Je veux une fonction qui lise de façon brut. La partie la plus importante pour moi sont les données en dessous de , je dois les utiliser pour tracer une courbe. La partie supérieur sera affichée dans un frame pour indication.
    On ne va pas l'écrire pour vous, juste essayer de vous aider si vous rencontrez des difficultés à le faire vous même.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/04/2011, 12h57
  2. Réponses: 6
    Dernier message: 02/12/2010, 22h04
  3. [XL-2003] Découper des chaînes de caractère d'un fichier et les stocker dans un tableau
    Par -Naek- dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 18h24
  4. recuperer les variables d'un .txt pour les stocker dans un tableau du .fla
    Par Dryss51 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 19/04/2008, 09h14
  5. Réponses: 9
    Dernier message: 05/11/2007, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo