[Python-es] gráfico en barras en tiempo real

Arnau Sanchez arnau en ehas.org
Mie Sep 26 17:15:50 CEST 2007


Maria Eugenia Ferrero escribió:

> import gdchart
> import sys, os
> datos = map(int, str(os.system('top -b | grep Mem')))
>  x = gdchart.Bar3D()
>  x.setData(datos)
> x.draw("memoria.png")
> 
> La idea es que el gráfico debe ir cambiando en tiempo real conjuntamente con
> los datos, pero sólo logro que se actualicen los datos y al final me muestre
> la gráfica. 

Es que "top -b" no acaba nunca, tendrías que añadir el parámetro "-n1" 
para que te dé sólo una actualización.

Por otra parte, ¿te funciona esa línea en que pasas los valores a 
entero? puesto que la salida de top es ésta:

Mem:    508404k total,   489340k used,    19064k free,      632k buffers

antes tendrías que extraer el campo o campos que te interesen...

A todo esto, ¿no te iría mejor el comando "free"?

Por otra parte, ir llamando a un proceso externo de forma continua es 
caro. ¿No te sirve la información de /proc/meminfo?

Cuidado que la memoria del sistema incluye también la swap, no sólo la 
memoria física.

arnau



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