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 :

Probleme débutant Str/bytes


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut Probleme débutant Str/bytes
    Bonjour, j'ai une suite de caractères au format Str sous cette forme " b'BM\x8e\x00\x00\x00\x00\x00\.... "

    J'aimerais que cette suite de caractere redevienne au format Bytes (sans modification des caractères), mais je n'y arrive pas.
    quand j'utilise la bytes(masuitedecaracteres, "utf-8") je me retrouve avec " B"b'BM\\x8e\\x00\\x00\\x00\\x00\\x00\\... " j'ai donc essayé d'enlever le premier b et l'apostrophe de ma chaine de caractere, et de retenter l'operation, ce qui m'a donné "b'BM\\x8e\\x00\\x00\\x00\\x00\\x00\\" alors que je ne veux pas de double antislashs... (par contre, le format à la fin est bien Bytes, y'a que le probleme des doubles antislashs en fait...)
    Merci !

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

    Citation Envoyé par TueurDeMouches Voir le message
    j'ai une suite de caractères au format Str sous cette forme " b'BM\x8e\x00\x00\x00\x00\x00\.... "
    On peut imaginez que vous aviez une suite de bytes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> a = b'abc\n\x05\x09'
    transformée en objet de type "str" en lui appliquant le constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> str(a)
    "b'abc\\n\\x05\\t'"
    >>>
    plutôt qu'en appliquant .decode('utf-8'):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> str(a.decode())
    'abc\n\x05\t'
    >>>
    A la fin, ça fait un tas de boue... ou plutôt ce qui est "attendu":
    >>> help(str)
    Help on class str in module builtins:

    class str(object)
    | str(object='') -> str
    | str(bytes_or_buffer[, encoding[, errors]]) -> str
    |
    | Create a new string object from the given object. If encoding or
    | errors is specified, then the object must expose a data buffer
    | that will be decoded using the given encoding and error handler.
    | Otherwise, returns the result of object.__str__() (if defined)
    | or repr(object).
    | encoding defaults to sys.getdefaultencoding().
    | errors defaults to 'strict'.
    |
    Mais si vous ne prenez pas le temps de raconter ce que vous voulez (plutôt que ce que vous ne voulez pas) et montrer comment vous vous y prenez, pas facile de vous dire autre chose que RTFM.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Je ne comprends pas trop.. (je débute...)

    j'ai :
    >>> print(b)
    b'BM\x8e\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00|\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 \x00\x03\x00\x00\x00\x04\x00\x00\x00\x13\x0b\x00\x00\x13\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00BGRs\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\xd8\xef'
    >>> print(type(b))
    <class 'str'>


    mais je voudrais que b soit en bytes, pas en str..

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par TueurDeMouches Voir le message
    mais je voudrais que b soit en bytes, pas en str..
    Et votre "b" est tombe du ciel...

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    En réalité, ça ne tombe pas vraaaaiment du ciel.
    Je suis désolé, je ne sais pas trop ce qui est nécessaire ou pas, et j'ai peur de dire des trucs inutiles (et totalement faux..)
    du coup, voila tout mon blabla :

    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
     
    from tkinter import *      
     
    def ok():
        b = Champ1.get("1.0" , END+"-1c")
        print(b)
        print(type(b))
     
     
     
    fenetre = Tk()
     
    Champ1 = Text(fenetre , width = 80 , height = 15, wrap = WORD)
    Champ1.pack()
     
    bouton_ok = Button(fenetre, text="Valider", command =ok)
    bouton_ok.pack()
    fenetre.mainloop()
    (je sais pas si c'est la meilleure formulation, mais je suis déjà content d'avoir récupéré ce que je rentre dans la fenetre... mais c'est au format str )

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

    Blabla ou pas, le premier post montre le contenu d'un fichier binaire.
    Expliquez comment vous arrivez a récupérer cela avec le programme que vous montrez dans le dernier post!

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

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    C'est un ami qui m'a envoyé ça et il m'a "mis au défi" de l'ouvrir..

    il a du faire un truc du genre print(open("image",'rb').read()) sauf que j'ai pas la photo, moi, ahahah..

    Merci de m'aider, c'est gentil

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par TueurDeMouches Voir le message
    Merci de m'aider, c'est gentil
    J'ai plutôt l'impression de perdre mon temps.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Excusez moi de ne pas être un "dieu du Python" comme vous.

Discussions similaires

  1. [Débutant]Probleme de Conversion byte[] BufferedImage
    Par mimomimo dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 10/04/2009, 08h49
  2. [SSIS][2k5] Probleme débutant
    Par forca dans le forum SSIS
    Réponses: 2
    Dernier message: 22/07/2008, 14h45
  3. [prolog] probleme débutant
    Par cflo91 dans le forum Prolog
    Réponses: 2
    Dernier message: 14/05/2007, 21h58
  4. Probleme débutant plugin Validator
    Par thibault_carpentier dans le forum Struts 1
    Réponses: 2
    Dernier message: 26/01/2007, 14h08
  5. [Free Pascal] Problème avec 'str'
    Par TheBigMac dans le forum Free Pascal
    Réponses: 1
    Dernier message: 12/04/2006, 21h56

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