[Python]Problème de split.

Problème de split. [Python] - Python - Programmation

Marsh Posté le 04-04-2019 à 17:52:10    

Bonjour,

 

Je travaille sur un TP pour la prépa, et je suis face à un petit soucis. Le TP porte sur le codage d'Huffman, en Python, et ma fonction doit convertir ma string résultant de l'encodage de l'arbre en une string avec les vrais valeurs binaires (chr encodés sur 8 bits).

 

Seulement voilà, ma string résultant est très longue et la voici '001100010011111011100110000111001011100111101110100001110010001010010010110100111100100010110010001001101101011100101110110111011011101101110110111011011101'

 

Celle-ci une fois convertie est censée me renvoyer une string qui est la suivante : '1>æ\x1c¹î\x87"\x92ÓȲ&×.Ý»ví\r'

 

Voici ma fonction, j'expliquerai le problème ensuite.

 

def tobinary(dataIN):
    """
    Compresses a string containing binary code to its real binary value.
    """
    outStr = ""
    L = [chr(int(dataIN[i:i+8],2)) for i in range(0, len(dataIN), 8)]
    for i in L:
        outStr += i
    return outStr

 

Le problème est le suivant, la construction de la liste est bonne puisque celle-ci renvoie : ['1', '>', 'æ', '\x1c', '¹', 'î', '\x87', '"', '\x92', 'Ó', 'È', '²', '&', '×', '.', 'Ý', '»', 'v', 'í', '\r']
Soit toutes les conversions attendues, mais lorsque dans ma boucle je concatène chacun des éléments de la liste à ma string "outStr" des caractères semblent être transformés et certains semblent disparaître puisque celle-ci renvoie : 1>æ¹î‡"’ÓȲ&×.Ý»ví

 

Pouvez-vous m'aider s.v.p car je sèche complètement sur le pourquoi du comment.


Message édité par kNRD- le 04-04-2019 à 17:54:25
Reply

Marsh Posté le 04-04-2019 à 17:52:10   

Reply

Marsh Posté le 04-04-2019 à 19:24:18    

Bonjour,
 
Ne vois-tu vraiment pas un dénominateur commun aux caractères manquants ?
Je te conseille de faire une recherche rapide avec les termes "Python" et "échappement". ;)  
 
Tu dis t'attendre à avoir en retour une chaîne de caractères de quelle longueur ? Cela ne te choque pas par rapport à la longueur de ta chaîne binaire ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed