[Python] print question

Roberto Preziusi roberto.preziusi a gmail.com
Dom 26 Feb 2012 18:36:19 CET


Il giorno 26 febbraio 2012 18:01, Carlo Miron <miron a python.it> ha scritto:

> 2012/2/26 Roberto Preziusi <roberto.preziusi a gmail.com>:
> >>>> print "come faccio a stampare g='a0'?"
> > come faccio a stampare g='a0'?
>

in effetti mi rendo conto di non esser stato molto chiaro. :)

Praticamente ho una stringa molto lunga, dove ogni sottostringa è da
convertire secondo una certa logica.



Da una stringa tipo questa:

s="*01*:03:00:A0:BC:*02*:09:55:54:00:00:00:00:00:00:07:*03*
:0E:55:54:00:00:00:00:00:00:01:02:01:03:00:01:*04*:.."

si tirano fuori le varie sottostringhe da convertire da esadecimale in
ASCII (55 = 'U' ) o da esadecimale in numeri interi (0A=10) o anche una
parte ascii e una parte interi (55:0A='U10'S)
identificando la stringa come segue:

*id:len:text*
*01*:03:00:A0:BC
*02*:09:55:54:00:00:00:00:00:00:07
*03*:0E:55:54:00:00:00:00:00:00:01:02:01:03:00:01
...

Vorrei definire una funzione generale che mi permetta di stampare il
contenuto di ogni sottostringa convertendola come descritto prima.

Ad esempio:

*01*:03:00:A0:BC = 00A0BC
*02*:09:55:54:00:00:00:00:00:00:07  = UT0000007
*03*:0E:55:54:00:00:00:00:00:00:01:02:01:03:00:01 = UT000000121301

mi blocco pero' nella prima parte ottenendo il carattere 'A0' .
Volendo convertire da esadecimale ad ascii dovrebbe ritornarmi sempre la
stringa 'A0', mentre invece mi ritorna 'xa0' che non riesco a stampare a
video.

>>> g = "A0".decode("hex")
>>> print g
�

Ho pensato anche di stampare direttamente il carattere direttamente ma in
questo modo non riesco a capire come rendere generale la funzione anche per
la conversione hex2int
Spero di esser stato un po' più chiaro.
Saluti
-- 
Preziusi Roberto
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120226/738f665a/attachment.html>


Maggiori informazioni sulla lista Python