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 :

importer un fichier important sur python


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut importer un fichier important sur python
    Bonjour,

    Je suis actuellement étudiant en école d'ingénieur et je réalise un projet qui nécessite l'accès a de nombreuses données en fonction de paramètre prédéterminé.

    Pour faire court, en fonction de 2 paramètres (que l'on appelle 'mach' et 'altitude'), je souhaite réaliser une fonction qui aille me chercher dans le fichier les bonnes données stockées sous forme tabulaire.

    Cependant, il s'agit d'un fichier texte dont les paramètres d'entrées (ie 'mach' et 'altitude') ne sont pas bien «disposés».

    Les données se présente sous la forme :

    -----------------------------------------------------------------

    ALTITUDE : 1500. FT

    MACH : 0.300



    0.30000 0.01954 1.58 65581.2 4270.8 15.36
    0.31000 0.01971 1.68 67767.2 4309.1 15.73
    0.32000 0.01989 1.79 69953.3 4348.7 16.09
    0.33000 0.02008 1.90 72139.3 4389.5 16.43
    0.34000 0.02027 2.00 74325.4 4431.6 16.77
    0.35000 0.02048 2.11 76511.4 4476.7 17.09
    0.36000 0.02069 2.22 78697.4 4523.6 17.40
    0.37000 0.02090 2.33 80883.5 4569.2 17.70
    0.38000 0.02111 2.43 83069.5 4615.5 18.00
    0.39000 0.02135 2.54 85255.6 4668.0 18.26
    0.40000 0.02161 2.65 87441.6 4723.1 18.51
    0.41000 0.02186 2.75 89627.6 4778.7 18.76

    ----------------------------------------------------------------------

    le fichier contient un grand nombre de tableaux qui dépendent du couple (Mach,Altitude) dont on effectue un balayage selon un pas précis.

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne comprends pas bien la question posée, mais voilà tout de même un petit coup de pouce:

    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
    #! /usr/bin/python
    # -*- coding: utf-8 -*-
    from __future__ import division, print_function, unicode_literals
    # Python v2.7
     
    fichier = "fichiertest.txt"
    with open(fichier, 'r') as f:
        for ligne in f:
            ligne = ligne.rstrip() # on retire le caractère de fin de ligne
            if ligne=="" or ligne.startswith("-----"):
                continue # on ne tient pas compte des lignes sans information
            if ligne.startswith("ALTITUDE"):
                print(ligne)
                continue
            if ligne.startswith("MACH"):
                print(ligne)
                continue
            liste = [float(x) for x in ligne.split()]
            print(liste)
    Appliqué au contenu défini dans le message précédent, cela affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ALTITUDE : 1500. FT
    MACH : 0.300
    [0.3, 0.01954, 1.58, 65581.2, 4270.8, 15.36]
    [0.31, 0.01971, 1.68, 67767.2, 4309.1, 15.73]
    [0.32, 0.01989, 1.79, 69953.3, 4348.7, 16.09]
    [0.33, 0.02008, 1.9, 72139.3, 4389.5, 16.43]
    [0.34, 0.02027, 2.0, 74325.4, 4431.6, 16.77]
    [0.35, 0.02048, 2.11, 76511.4, 4476.7, 17.09]
    [0.36, 0.02069, 2.22, 78697.4, 4523.6, 17.4]
    [0.37, 0.0209, 2.33, 80883.5, 4569.2, 17.7]
    [0.38, 0.02111, 2.43, 83069.5, 4615.5, 18.0]
    [0.39, 0.02135, 2.54, 85255.6, 4668.0, 18.26]
    [0.4, 0.02161, 2.65, 87441.6, 4723.1, 18.51]
    [0.41, 0.02186, 2.75, 89627.6, 4778.7, 18.76]
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Deja merci de répondre aussi rapidement,

    En fait le but est qu'à partir d'un fichier texte qui contient beaucoup de données sous la forme précédente, je puisse en retirer les données «utiles».

    En effet, Je souhaiterais faire une fonction qui en fonction du couple : (mach, altitude) (exemple : 1500 et 0,300 dans le cas plus haut)
    aille me chercher les données du tableau en dessous qui pour chaque colonne représente un paramètre donné à traiter.

    Etant donné que l'on a un balayage en mach et altitude, le fichier contient autant de tableaux que de couples (Mach ; altitude) et il m'est compliqué d'aller chercher les bonnes valeurs en fonction de ce couple.

    Merci bien pour le coup de pouce !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par paul_f972 Voir le message
    En fait le but est qu'à partir d'un fichier texte qui contient beaucoup de données sous la forme précédente, je puisse en retirer les données «utiles».

    En effet, Je souhaiterais faire une fonction qui en fonction du couple : (mach, altitude) (exemple : 1500 et 0,300 dans le cas plus haut)
    aille me chercher les données du tableau en dessous qui pour chaque colonne représente un paramètre donné à traiter.
    L'exemple de Tyrtamos vous montre comment lire le fichier (ou ses bouts).
    Pour le reste, réaliser une fonction "qui aille me chercher les données du tableau en dessous qui pour chaque colonne représente un paramètre donné à traiter" commence par préciser ce que ces mots veulent dire avant de pouvoir traduire çà en Python.

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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je vous donne juste plus de précisions pour mieux comprendre mon problème.

    Voici à quoi correspond une partie de mon fichier :

    -----------------------------------------
    ALTITUDE : 1500. FT

    MACH : 0.300



    0.30000 0.01954 1.58 65581.2 4270.8 15.36
    0.31000 0.01971 1.68 67767.2 4309.1 15.73
    0.32000 0.01989 1.79 69953.3 4348.7 16.09
    0.33000 0.02008 1.90 72139.3 4389.5 16.43
    0.34000 0.02027 2.00 74325.4 4431.6 16.77
    0.35000 0.02048 2.11 76511.4 4476.7 17.09
    0.36000 0.02069 2.22 78697.4 4523.6 17.40
    0.37000 0.02090 2.33 80883.5 4569.2 17.70
    0.38000 0.02111 2.43 83069.5 4615.5 18.00
    0.39000 0.02135 2.54 85255.6 4668.0 18.26
    0.40000 0.02161 2.65 87441.6 4723.1 18.51
    0.41000 0.02186 2.75 89627.6 4778.7 18.76
    0.42000 0.02212 2.86 91813.7 4835.5 18.99
    0.43000 0.02240 2.97 93999.7 4895.7 19.20
    0.44000 0.02268 3.08 96185.8 4957.9 19.40
    0.45000 0.02297 3.18 98371.8 5020.3 19.59
    0.46000 0.02325 3.29 100557.8 5083.6 19.78
    0.47000 0.02356 3.40 102743.9 5150.4 19.95

    ALTITUDE : 1500. FT

    MACH : 0.310



    0.30000 0.01948 1.58 70026.1 4547.7 15.40
    0.31000 0.01966 1.69 72360.3 4588.7 15.77
    0.32000 0.01984 1.79 74694.6 4630.9 16.13
    0.33000 0.02003 1.90 77028.8 4674.5 16.48
    0.34000 0.02022 2.01 79363.0 4719.5 16.82
    0.35000 0.02043 2.11 81697.2 4767.6 17.14
    0.36000 0.02064 2.22 84031.4 4817.7 17.44
    0.37000 0.02085 2.33 86365.6 4866.4 17.75
    0.38000 0.02106 2.43 88699.8 4915.9 18.04
    0.39000 0.02130 2.54 91034.0 4971.9 18.31
    0.40000 0.02155 2.65 93368.2 5030.7 18.56
    0.41000 0.02181 2.75 95702.4 5090.1 18.80
    0.42000 0.02207 2.86 98036.6 5150.7 19.03

    ------------------------------------------------------------------

    (considerer que les tirets sont les limites de mon fichier texte)

    note : le fichier contient une centaine de tableaux.

    Avec ces données, je veux, pour un couple MACH ET ALTITUDE donné ( C'est a dire la valeur devant leur champ respectif), avoir accès au tableau correspondant pour utiliser les données.

    Je m'explique par exemple, J'ai déterminé mes paramètres MACH et ALTITUDE qui valent respectivement 1500 et 0,310, je veux donc utiliser le 2ème tableau qui contient des valeurs de paramètres diffèrent selon la colonne.

    De plus, une valeur de la 1ère colonne aura été calculée en même temps que MACH et ALTITUDE afin de récupérer des données sur la même ligne.

    Pour résumer :

    1- Calcul de MACH, ALTITUDE et une valeur que l'on note L1 (paramètre qui représente une valeur de la 1ere colonne)
    2- grâce à une fonction (que je cherche à coder) qui dépend des 3 paramètres précédents va me stocker dans des variables les données de la ligne correspondant au tableau (MACH,ALTITUDE) et dont la ligne est là ou on trouve L1.

    exemple:

    MACH = 0,310 ; ALTITUDE = 1500 ; L1 = 0,300

    --> la fonction détecte qu'il s'agit du 2 eme tableau et de la 1ère ligne de celui-ci et stocke dans des variables les valeurs : 0.01948 1.58 70026.1 4547.7 15.40.

    Voila, j'espere avoir ete clair.

    Merci beaucoup

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Pour résumer :

    1- Calcul de MACH, ALTITUDE et une valeur que l'on note L1 (paramètre qui représente une valeur de la 1ere colonne)
    2- grâce à une fonction (que je cherche à coder) qui dépend des 3 paramètres précédents va me stocker dans des variables les données de la ligne correspondant au tableau (MACH,ALTITUDE) et dont la ligne est là ou on trouve L1.
    ca commence par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def search_func(mach, altitude, L1):
          '''retourne la ligne correspondant à L1'''
    Après, le code que vous a donné Tyrtamos doit être adapté pour détecter une ligne qui commence par 'ALTITUDE= %d. FT' % altitude.
    Si cette ligne est trouvée, on regarde le MACH qui arrive ensuite. S'il est égal à altitude, il nous intéresse.
    Puis on récupère la ligne et on la retourne.

    Mais tout est là...
    C'est du Python plutôt basique, vous devriez essayer d'apprendre à vous en sortir tout seul.
    Donc le sujet est comment adapter le code de Tyrtamos pour qu'il réalise vos attentes.
    Si vous rencontrez des difficultés, on vous aidera certainement pour peu que vous postiez du code, l'erreur rencontrée,...

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

Discussions similaires

  1. Comment importer un fichier .war sur MyEclipse?
    Par feldene dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/03/2012, 11h33
  2. [AC-2003] Importer un fichier csv sur une table access
    Par mmmxtina dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/08/2009, 15h16
  3. Importer un fichier caseware sur excel
    Par chakev dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2008, 15h50
  4. Importer un fichier pdf sur excel
    Par chakev dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2008, 00h01
  5. Peut on importer un fichier excel sur sage 500
    Par tedy75 dans le forum Excel
    Réponses: 3
    Dernier message: 11/02/2006, 19h18

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