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 :

Affichage une valeur dans un fichier en pyrhon avec la fonction write


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut Affichage une valeur dans un fichier en pyrhon avec la fonction write
    Bonjour/bonsoir chers membres selon où vous me recevez.
    Dans le cadre de mon projet de mémoire j ai rencontré un problème avec le langage python.
    J ai codé en python pour pouvoir stocker les donnees d 'un capteur branché photoresistance avec arduino. Mais dans le fichier, il affiche comme suit:
    [b'245'] alors que seulement le valeur 245 qui m 'interesse.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import serial
    import time
    import sys
    dat = time.strftime('%d-%m-%Y %H:%M:%S',time.localtime())  
    bit='bit'
     
    uart = serial.Serial("COM4")
    fp = open("data.csv", "a")
    #fp.write("nomThematique; nomParametre; valeurParametre; typeParametre; dateParametre \n")
    #sys.stdout.write("nomThematique; nomParametre; valeurParametre; typeParametre; dateParametre \n")
     
    #print(uart) 
    fp.write("luminosité ; Date\n ") #sur CMD
    while True:
        recorded = 0
        while uart.inWaiting() !=0:
            byte=uart.read(5)
            now = time.localtime()
            timestamp = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())  
            #print(byte)
            byte = byte.split()
            #print (x[0])
            #print (x[1])
     
            #fp.write("%s ; %s\n"%(byte[3:],timestamp)) #dans le fichier
            #fp.write("Climat ; Temperature ; %s ; %s\n"%(x[1],timestamp))
            fp.write(" \n")
     
           # sys.stdout.write("lumiere1   %s date  %s"%(byte[::],timestamp)) #sur CMD
            print(bytes)
            #sys.stdout.write("climat ; Temperature ;  %s ; %s\n"%(x[1],timestamp))
            sys.stdout.write(" \n")
            #sys.stdout.write("bit")
            recorded  = 1
        if recorded:
            fp.flush()
        time.sleep(1)
    *****Voici le resultat*********
    lumiere1 [b'266'] date 2021-02-09 11:33:22
    lumiere1 [b'263'] date 2021-02-09 11:33:23
    lumiere1 [b'245'] date 2021-02-09 11:33:24
    lumiere1 [b'246'] date 2021-02-09 11:33:25
    lumiere1 [b'263'] date 2021-02-09 11:33:26
    lumiere1 [b'264'] date 2021-02-09 11:33:27
    lumiere1 [b'249'] date 2021-02-09 11:33:28
    lumiere1 [b'246'] date 2021-02-09 11:33:29
    lumiere1 [b'261'] date 2021-02-09 11:33:30
    lumiere1 [b'264'] date 2021-02-09 11:33:31
    lumiere1 [b'246'] date 2021-02-09 11:33:32
    lumiere1 [b'248'] date 2021-02-09 11:33:33
    lumiere1 [b'266'] date 2021-02-09 11:33:34
    lumiere1 [b'254'] date 2021-02-09 11:33:35
    lumiere1 [b'248'] date 2021-02-09 11:33:36
    lumiere1 [b'266'] date 2021-02-09 11:33:37
    lumiere1 [b'246'] date 2021-02-09 11:33:38
    lumiere1 [b'253'] date 2021-02-09 11:33:39
    lumiere1 [b'264'] date 2021-02-09 11:33:40
    lumiere1 [b'246'] date 2021-02-09 11:33:41

    Alors moi je ne veux que la valeur dans les crochés.
    NB:La date ne pose pas problème

    chers memebres, merci de m appuyer sur ce code

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 759
    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 759
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> s = b'123'
    >>> print('%s'  % s)
    b'123'
    >>> print('%s'  % s.decode())
    123
    >>>
    Si le type de l'objet passé à '%s' n'est pas un str(ing), la méthode str lui sera appliquée et çà affiche le résultat.
    Si on veut que çà s'affiche autrement, il faut transformer l'objet en "str" soi-même. Ici, lui appliquer .decode() suffit.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut
    AttributeError: 'list' object has no attribute 'decode'
    c'est ce qui s'affiche quand j'ajoute .decode() dans la ligne du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sys.stdout.write("lumiere1   %s date  %s"%(byte.decode(),timestamp)) #sur CMD

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 759
    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 759
    Par défaut
    Virez l'instruction byte = byte.split() ça devrait être mieux.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. récupérer une valeur dans un fichier .txt ?
    Par _n1n1_ dans le forum VB.NET
    Réponses: 5
    Dernier message: 27/04/2007, 19h19
  2. Modifier une valeur dans un fichier xml
    Par arthrax dans le forum VBScript
    Réponses: 3
    Dernier message: 03/04/2007, 09h46
  3. [XSLT] Tester la non présence d'une valeur dans un fichier
    Par arnauann dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2007, 15h29
  4. Modifier une valeur dans un fichier sans passer par l'éditeur
    Par elkhy dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/06/2006, 00h15
  5. [D6] Recherche d'une valeur dans un fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 08h26

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