2010-06-23 5 views
-2
file = open('unicode.txt', 'wb') 

    for i in range(10): 
     file.write(str(unichr(i))) 

Ce que je voudrais faire est d'imprimer toutes les valeurs Unicode dans un fichier textePython: impression Unicode vers un fichier

+3

Quelle est la question ici? – Wilduck

+1

Avez-vous oublié le 'b' sur 'wb'? Est-ce la question? Si tel est le cas, veuillez réviser le code de format (1) correctement et (2) poser une question réelle afin que nous sachions quel problème vous avez réellement. –

+1

"Valeurs Unicode"? Voulez-vous dire "caractères" ou "octets"? Un caractère Unicode nécessite un ou plusieurs octets en fonction du codage. Que voulez-vous faire avec ce fichier? –

Répondre

-1

Vous ne devriez pas avoir l'appel str() autour unichr(i). Les objets Python unicode sont imprimables.

Ce:

file = open('unicode.txt', 'wb') 
for i in range(10): 
    file.write(unichr(i)) 

semble fonctionner pour moi, il imprime 0x0000, 0x0001, 0x0002, etc. dans le fichier texte.

+1

-1 'str()' est à la fois inutile et indésirable. L'utiliser garantira l'échec de i> = 256. "Les objets Unicode Python sont imprimables" - parfois, selon les objets, quelle plate-forme, la construction Python étroite/large-unicode, les encodages par défaut, les polices disponibles, Python 2.x ou 3 .x, phase de lune, etc Sur mon set-up votre code produit un fichier 10-BYTE contenant '' \ x00 \ x01 \ x02 \ x03 \ x04 \ x05 \ x06 \ x07 \ x08 \ t'' ... Si i == 128, le résultat pour moi est 'UnicodeEncodeError: 'le codec ascii' ne peut pas encoder le caractère '\ x80' en position 0: ordinal pas dans la plage (128)' –

2
somefile = codecs.open('unicode.txt', 'wb', someencoding) 

for i in range(10): 
    somefile.write(unichr(i)) 
Questions connexes