Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: dimineko en 12 Agosto 2018, 20:55 pm



Título: [PYTHON]Imprimir media de ms
Publicado por: dimineko en 12 Agosto 2018, 20:55 pm
CÓDIGO:
Código
  1. import os
  2. from time import strftime
  3. from time import sleep
  4. def imprimir_hora():
  5. hora = strftime("[%H:%M:%S]      ")
  6. print (hora)
  7. def ms():
  8. tubo = os.popen("ping google.com")
  9. datos = tubo.readlines()
  10. print (datos)
  11.  
  12.  
  13. ms()
  14.  

Hola! Tengo una duda.
Quiero hacer un script que compruebe la conexión del que lo esta ejecutando para luego realizar otra cosa.La cosa es que quiero separar la parte final del script en la cual te dice algo como "Media = 6ms" por ejemplo.
El idioma realmente da igual ya que lo que quiero separar es el "6ms".
Se que haciendolo una lista se conseguiría pero no lo logro.
A la parte de la hora no le hagais caso.
Un saludo y gracias.


PD: En resumidas cuentas,quiero ejecutar el script y que imprima ,por ejemplo: 6ms. (es la media que te hace el comando)


Título: Re: [PYTHON]Imprimir media de ms
Publicado por: tincopasan en 13 Agosto 2018, 17:44 pm
varias cosas:
1)
Citar
El idioma realmente da igual ya que lo que quiero separar es el "6ms"
supongo que te refieres al lenguaje de programación.
si es así es evidente que solo buscas un resultado no un aprendizaje

2)
Citar
Se que haciendolo una lista se conseguiría pero no lo logro.
A)
Código
  1. datos = tubo.readlines()
ya es una lista! no es necesario hacerla lista
B)¿y el código sobre listas que no consigues usar?
Si por casualidad estás intentando aprender python, el uso de listas es lo más básico que debes aprender.

3) solo con el uso de listas se volverá difícil, debiido a las variables en el resultado de las cadenas, por lo tanto deberás apoyarte en otro módulo(re) para solventar ese escollo.

4)Ahora, como esto que es muy básico también le puede servir a todo aquel que quiere aprender lo simple, haré una solución en base a este código, que por cierto no es el mejor ni más óptimo, simplemente funcional, y dudo que sea una tarea común en cursos o clases , etc.


Código
  1. import os
  2. from time import strftime
  3. from time import sleep
  4. import re   #necesario para usar expresiones regulares
  5. def imprimir_hora():
  6.    hora = strftime("[%H:%M:%S]      ")
  7.    print (hora)
  8. def ms():
  9.    tubo = os.popen("ping google.com")
  10.    datos = tubo.readlines()   #todos los datos en una lista
  11.    print(datos)  # repito, ya es una lista!!
  12.    ultimo=len(datos) - 1      #obtener el último elemento de la lista, es donde esta la media,no estoy seguro que sea siempre igual    
  13.    encontrada= re.search("Media",datos[ultimo]) #buscar que este la palabra media
  14.    desde= encontrada.start()  #que posición ocupa en la cadena, varia de acuerdo al nombre de la página
  15.    print (datos[ultimo][desde:]) # mostrar la cadena desde el inicio de media
  16.  
  17. ms()
  18. input()  #sino desde la consola no podrás ver la respuesta
  19.  

Saludos.


Título: Re: [PYTHON]Imprimir media de ms
Publicado por: dimineko en 18 Agosto 2018, 19:49 pm
Muchas gracias!