[Python-es] Imprimir string formatada

Alejandro Ab aagustinb en gmail.com
Mar Dic 2 17:58:13 CET 2014


Perfecto, era eso!

Me pase un par de horas mirando el paquete string y otros relacionados
pensando que el problema estaba en la representación de la cadena :-/

Muchas gracias!

El 2 de diciembre de 2014, 12:28, Rock Neurotiko <miguelglafuente en gmail.com>
escribió:

> Con el decode que comenta Kiko te funcionara, la razon es que communicate
> de Popen te devuelve los datos en bytes y no en string.
>
> El Tue Dec 02 2014 at 12:20:10, Kiko (<kikocorreoso en gmail.com>) escribió:
>
>
>>
>> El 1 de diciembre de 2014, 20:04, Alejandro Ab <aagustinb en gmail.com>
>> escribió:
>>
>> Buenas noches,
>>>
>>> estoy haciendo un programa que lea la salida de una instrucción
>>> ejecutada en un terminal Debian.
>>>
>>> El problema es que el cuando *imprimo* por pantalla el string retornado
>>> me aparece algo similar a esto:
>>>
>>> *b'*BSS 8c:0c:a3:2c:eb:0a (on wlan0) --  0*\n\t\t* * L-SIG TXOP Prot: 0
>>> *\n\t\*t * PCO active: 0\n\t\t *  AIFSN 7*\n\t\t* * VI: CW 7-15, AIFSN
>>> 2, TXOP 3008 usec*\n\t\t* * VO: CW 3-7, AIFSN 2, TXOP 1504 usec\n'
>>>
>>> con el b inicial que no se que es y todos los saltos de linea impresos
>>> como caracteres, como si hubieran pasado toda la string por un repr().
>>>
>>> Me preguntaba si alguien sabe que estoy haciendo mal, o si, a modo de
>>> chapuza, conocéis alguna función reversa de repr()
>>>
>>> Cualquier sugerencia sera bienvenida.
>>>
>>> ----------------------------------------------------------
>>>
>>> import subprocess as sp
>>> devname = "wlan0"
>>>
>>> channel = [2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457,
>>> 2462, 2467, 2472, 2484]
>>> loc_max_channel = 13
>>>
>>> # Set up the command
>>> for ch in range(0, loc_max_channel):
>>>     # Para cada canal ejecuta y imprime la instruccion
>>>     p1 = sp.Popen(['iw', 'dev', devname, 'scan', 'freq',
>>> str(channel[ch])], stdout=sp.PIPE)
>>>     output = p1.communicate()[0]
>>>     print(output)
>>>
>>>
>>> Cambia la última línea por lo siguiente a ver si es lo que quieres:
>> print(output.decode('utf-8'))
>>
>>
>>
>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20141202/1c2b4c38/attachment.html>


Más información sobre la lista de distribución Python-es