[Programación]dudita python
Emiliano Nuñez
nunez.emiliano en gmail.com
Vie Mar 5 21:07:03 ART 2010
> El día 5 de marzo de 2010 20:21, Emiliano Nuñez
> <nunez.emiliano en gmail.com> escribió:
>> Alguien me explica por qué imprime diferente lo siguiente?:
>>
>> 1 - >>> print urllib.unquote("file://NI%C3%91A PASTORI")
>> file://NIÑA PASTORI
>>
>>
>> 2- >>> urllib.unquote("file://NI%C3%91A PASTORI")
>> 'file://NI\xc3\x91A PASTORI'
>
> En el primer caso, lo que te aparece en pantalla es la salida de la
> función print, que sabe como representar en pantalla (de acuerdo al
> encoding de tu terminal. ) los caracteres no ascii (ord > 127) que
> estén embebidos en tu objeto, que en este caso es un string.
> Hint: probá a cambiar el encoding de tu terminal y fijate que
> probablemente lo que te aparezca en pantalla sea distinto
>
> En el segundo caso, estás viendo la representación "cruda" del objeto,
> podríamos decir lo que en realidad "es", los bytes que lo componen..
>
>
>>
>> Lo que necesito y guardar en una variable la salida del caso 1.
>>
> Lo que guardás/serializás es el string en sí mismo, no "cómo luce".
> Cómo lo muestres cuando después lo vuelvas a usar, vuelve a ser una
> cuestión de representación.
>
> Sugerencia: pegale una miradita en la doc de python al manejo de
> unicode. (O a unicode en general, independientemente de Python)
>
> Saludos.
Hola Ernesto, gracias por responder, clarisimo.
El tema viene por lo siguiente, quiero abrir el siguiente fichero:
>>> a=file(u'/home/emiliano/music/NI\xc3\x91A PASTORI/Joyas Prestadas/02 - Vivir Sin Aire.ogg',"rb");
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory:
u'/home/emiliano/music/NI\xc3\x91A PASTORI/Joyas Prestadas/02 - Vivir
Sin Aire.ogg'
>>>
como puedes ver le indico que es unicode antes de comenzar la cadena.
sin ambargo:
>>> a=file(u'/home/emiliano/music/NIÑA PASTORI/Joyas Prestadas/02 - Vivir Sin Aire.ogg',"rb");
>>>
lo abre correctamente.
El problema es que el nombre del fichero me lo da otra rutina de
libreria..y me lo da de la forma del primer caso que me da el error..
un saludo.
Más información sobre la lista de distribución Programacion