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 la donnée avec python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 9
    Par défaut Lire la donnée avec python
    Bonsoir,

    Je suis très débutant avec python. J'ai un ficher module.txt dans lequel il y a seulement un colonne de chiffre comme suit:

    4.3E-003
    1.3E-003
    6.4E-004
    ....
    ....

    je définis un vecteur: data[]

    Pourriez-vous, SVP, me montrer comment pour distribuer les valeurs dans le fichers module.txt aux composantes du vecteur data[].

    Merci par avance.

    VMN

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu peux lire un fichier en l'ouvrant avec open('nomdefichier', 'mode') en mode lecture 'r'.

    Tu peux ensuite itérer sur les lignes du texte avec readline() ou recupérer l'ensemble des lignes sous forme de liste avec readlines().

    Comme les valeurs sont des chaînes de texte et qu'elles se terminent par un caractère de fin ligne, il faut les adapter à ton besoin, soit convertir avec float() et supprimer le retour ligne avec strip()

    dans ton cas, une façon simple serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> with open('values', 'r') as objf:
    ...     a = [float(x.strip()) for x in objf]
    ... 
    >>> a
    [0.0043, 0.0013, 0.0064]
    Note qu'en utilisant with tu ne dois pas fermer le fichier, Python le fera automatiquement même en cas d'erreur.

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 9
    Par défaut
    Merci Vincent,

    J'ai fait comme tu m'appris mais il annonce une erreur comme suite:

    --------------------------------------------------------------------------------------------------
    Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> with open ('depl_mesure.txt','r') as objf:
    ... a = [float(x.strip()) for x in objf]
    File "<stdin>", line 2
    a = [float(x.strip()) for x in objf]
    ^
    IndentationError: expected an indented block
    --------------------------------------------------------------------------------------------------

    Et c'est où le problème?

    Merci par avance.

    VMN

  4. #4
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par geomechanic Voir le message
    Merci Vincent,

    J'ai fait comme tu m'appris mais il annonce une erreur comme suite:

    --------------------------------------------------------------------------------------------------
    Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> with open ('depl_mesure.txt','r') as objf:
    ... a = [float(x.strip()) for x in objf]
    File "<stdin>", line 2
    a = [float(x.strip()) for x in objf]
    ^
    IndentationError: expected an indented block
    --------------------------------------------------------------------------------------------------

    Et c'est où le problème?

    Merci par avance.

    VMN
    Je suis débutant en python mais vu le message d'insultes, cela paraît être un problème d'indentation. Tu as un script ? Si oui, mets-le entre balises #.

    [edit] Je viens de réaliser que tu n'as pas de script.
    Par contre, tu as oublié d'indenter ta ligne après ":" : c'est la touche TAB...

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 9
    Par défaut
    Voici le script, il y a tous jour le problème:
    Fichiers attachés Fichiers attachés
    • Type de fichier : py lire.py (88 octets, 77 affichages)

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Il n'y a aucun problème avec le script. Fonctionne très bien chez moi.

    Par contre, je te conseillerais d'utiliser 4 espaces pour l'indentation parce que un seul espace c'est peu pour que ce soit clair au niveau des différents blocs de code.

Discussions similaires

  1. [Python 2.X] Créer un écrire un fichier de données avec Python ? Pas de CSV ou .txt !
    Par Ben20 dans le forum Général Python
    Réponses: 5
    Dernier message: 16/04/2015, 12h22
  2. (Client/Serveur)Lire flux données avec sockets
    Par tr.hedi dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 24/02/2013, 22h05
  3. Réponses: 13
    Dernier message: 16/06/2010, 12h17
  4. Lire un fichier XML avec Python
    Par eyquem dans le forum Général Python
    Réponses: 2
    Dernier message: 19/12/2007, 13h54
  5. [Excel] Lire des données de excel avec php
    Par Eisy dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/03/2006, 17h00

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