Título: [python] ayuda con script ¨^^(SOLUCIONADO)
Publicado por: EvilGoblin en 16 Abril 2010, 04:36 am
from subprocess import STDOUT, PIPE,Popen from tempfile import NamedTemporaryFile command = "iwlist wlan0 scan" tmpout = open("datos.txt","w+") p=Popen(command, stdout=PIPE,stderr=PIPE,shell=True).communicate()[0] aux =p.rfind("Cell ") cantidad = int (p[aux+5:aux+7]) print cantidad lista=[[0 for col in range(9)] for row in range(15)] i=0 aux=0 aux2=0 aux3=0 #numero, ap, canal, calidad, ruido, encriptacion, bitrate while i < cantidad: aux=p.find("Cell ",aux+1) lista[i][0]=i lista[i][1] = p[aux+19:aux+36] aux2=p.find("\"",aux+1) aux3=p.find("\"",aux2+1) lista[i][2] = p[aux2+1:aux3] aux2=p.find("Channel",aux) aux3=p.find("\n",aux2+2) lista[i][3]=p[aux2+8:aux3] aux2=p.find("Quality=",aux) aux2=p.find("=",aux2) aux3=p.find(" ",aux2) lista[i][4]=p[aux2+1:aux3] aux2=p.find("level",aux2) aux2=p.find(":",aux2) aux3=p.find("\n",aux2) lista[i][5]=p[aux2+1:aux3] aux2=p.find("key",aux2) aux2=p.find(":",aux2) aux3=p.find("\n",aux2) lista[i][6]=p[aux2+1:aux3] aux2=p.find("Extra",aux) aux2=p.rfind("Mb/s",aux2) aux3=p.find(" ",aux2-3) lista[i][7]=p[aux2-10:aux3] i=i+1 print p i=0 while i < cantidad: print lista[i][0] print lista[i][1] print lista[i][2] print lista[i][3] print lista[i][4] print lista[i][5] print lista[i][6] print lista[i][7] print "-----------------" i=i+1 print "aca no deberia pasar"
la salida es esta bash-3.1# python scan.py 2 wlan0 Scan completed : Cell 01 - Address: 00:15:6D:65:38:C7 ESSID:"5k Pro1" Mode:Master Channel:1 Frequency:2.412 GHz (Channel 1) Quality=11/100 Signal level:7/100 Encryption key:off Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s Extra:tsf=0000002b77712736 Extra: Last beacon: 1000ms ago Cell 02 - Address: 00:24:D2:D6:95:D3 ESSID:"Speedy-WiFi" Mode:Master Channel:1 Frequency:2.412 GHz (Channel 1) Quality=23/100 Signal level:8/100 Encryption key:off Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Extra:tsf=000000335db5179c Extra: Last beacon: 968ms ago
0 00:15:6D:65:38:C7 5k Pro1 1 11/100 7/100 off Mb/s; 54 ----------------- 1 00:24:D2:D6:95:D3 Speedy-WiFi 1 23/100 8/100 off 968ms ago
----------------- aca no deberia pasar bash-3.1#
Mi pregunta es pork en el ultimo no llega a imprimir como deberia ( Mb/s; 54) y me imprime la final de linea tmb me gustaria saber como evitar que imprima el final de linea en cada linea, o como concatenar el texto para formar 1 sola linea Grax!
Título: Re: [python] ayuda con script ¨^^
Publicado por: Novlucker en 16 Abril 2010, 13:46 pm
No tengo idea y no tengo para probar, pero es raro que no aparezca eso :xD Sobre la línea ... 2.6 print algo,
Lo importante es la coma final 3.x print(algo,end='')
En python 3000 el print es una función, por lo que hay que cambiar los parámetros que trae por default, en este caso el valor default del end es '\n', así que lo dejamos como vacío :D Saludos
Título: Re: [python] ayuda con script ¨^^
Publicado por: EvilGoblin en 17 Abril 2010, 01:35 am
Gracias !!! si era con la coma el problema y el otro tmb lo resolvi, con rfind se va hasta el final de la linea entonces buscaba el ultimo valor y por eso nunca me daba lo que queria lo solucione asi aux2=p.rfind("Mb/s",aux,aux2)
entonces busca desde la posicion de aux2 hasta aux en reversa :P
Título: Re: [python] ayuda con script ¨^^(SOLUCIONADO)
Publicado por: Novlucker en 17 Abril 2010, 03:02 am
Aaaaah :D No me había pidido fijar bien, en fin solucionado entonces :P
Saludos
|