[python] problème avec le paramètre rb.

JEAN-JACQUES -  
heyquem Messages postés 808 Statut Membre -
Bonjour,

Mon but est de faire un script capable de mettre à l'envers le code d'une image gif.

Voici mon code:
# -*-coding:Latin-1 -* 
import os 

os.chdir("C:/test") 
source = open("file", "rb").read()[::-1]   
print(source) 
fichier = open("chaine3", "a") 
source = str(source) 
fichier.write(source) 


le problème c'est que le résultat comporte des caractère spéciaux par exemple @&"... alors qu'il devrai avoir que de l'hexa 'enfin je pense). Shocked Confused

Qu'en pensez vous ?

1 réponse

  1. heyquem Messages postés 808 Statut Membre 131
     
    Salut,

    Je pense qu'il te suffit d'écrire 'ab' et non pas seulement 'a' comme mode dans
    fichier = open("chaine3", "a") 


    J'ai vérifié avec le code suivant:

    # -*-coding:Latin-1 -*  
    
    from struct import pack 
    
    fs = open("G:\\Python27\\tcl\\tix8.4.3\\bitmaps\\minus.gif", "rb") 
    source = fs.read() 
    fs.close() 
    
    print tuple(pack('c',x) for x in source) 
    
    print '\n--------------------------------\n' 
    
    source =  source[::-1] 
    print tuple(pack('c',x) for x in source) 
    
    fichier = open("I:\\all\\chaine3.gif", "wb")   
    fichier.write(source) 
    fichier.close() 
    
    print '\n====================================\n' 
    
    f = open("I:\\all\\chaine3.gif",'rb') 
    cc = f.read() 
    f.close()
    print tuple(pack('c',x) for x in cc)


    Le résultat est:

    ('G', 'I', 'F', '8', '9', 'a', '\t', '\x00', '\t', '\x00', '\x80', '\x00', '\x00', '\xb2', '\xc0', '\xdc', '\x00', '\x00', '\x00', '!', '\xf9', '\x04', '\x01', '\x00', '\x00', '\x00', '\x00', ',', '\x00', '\x00', '\x00', '\x00', '\t', '\x00', '\t', '\x00', '\x00', '\x02', '\x10', '\x8c', '\x8f', '\xa0', '\x0b', '\xc6', '\xeb', '^', '\x0b', '\xf3', 'L', 'y', 'e', '|', '\xa8', '\x87', '\x02', '\x00', ';') 
    
    -------------------------------- 
    
    (';', '\x00', '\x02', '\x87', '\xa8', '|', 'e', 'y', 'L', '\xf3', '\x0b', '^', '\xeb', '\xc6', '\x0b', '\xa0', '\x8f', '\x8c', '\x10', '\x02', '\x00', '\x00', '\t', '\x00', '\t', '\x00', '\x00', '\x00', '\x00', ',', '\x00', '\x00', '\x00', '\x00', '\x01', '\x04', '\xf9', '!', '\x00', '\x00', '\x00', '\xdc', '\xc0', '\xb2', '\x00', '\x00', '\x80', '\x00', '\t', '\x00', '\t', 'a', '9', '8', 'F', 'I', 'G') 
    
    ==================================== 
    
    (';', '\x00', '\x02', '\x87', '\xa8', '|', 'e', 'y', 'L', '\xf3', '\x0b', '^', '\xeb', '\xc6', '\x0b', '\xa0', '\x8f', '\x8c', '\x10', '\x02', '\x00', '\x00', '\t', '\x00', '\t', '\x00', '\x00', '\x00', '\x00', ',', '\x00', '\x00', '\x00', '\x00', '\x01', '\x04', '\xf9', '!', '\x00', '\x00', '\x00', '\xdc', '\xc0', '\xb2', '\x00', '\x00', '\x80', '\x00', '\t', '\x00', '\t', 'a', '9', '8', 'F', 'I', 'G')
    0