Hola, hace tiempo fui a una entrevista de trabajo y me ofrecieron un proyecto muy interesante de cómo podríamos comunicar un programa que nos dijera cuánta capacidad del disco duro tenemos y el programa cliente hiciera una gráfica del mismo. La gráfica tendría que ser en forma de pastel.
Planteamiento
Mi planteamiento era hacer un comando, almacenarlo en un fichero de texto o variable de Python. El programa cliente se conecta al servidor y éste le devuelve en un JSON toda la información. El JSON será procesado en el PC cliente y mostrado en forma de pastel
Código del servidor en Linux
Por aquí dejo el código del cliente
import socket
import os
str(os.system('df -h | grep /dev/s>texto.txt'))
f = open("texto.txt", "r")
lineas = f.readlines()
from flask import Flask
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/", methods=['GET'])
def hello():
nombreUser = request.args.get('nombreUser')
if nombreUser=="holamundo":
return (lineas)
else:
return "error"
if __name__ == "__main__":
app.run(host="0.0.0.0")
Código del servidor
Por aquí dejo el código del servidor:
import json
import pandas as pd
import matplotlib as plt
import re
df = pd.read_json('http://192.168.1.99:5000/?nombreUser=holamundo')
ds=df.to_string()
x = ds.split("\n")
pattern = r'[ ]+'
nom =[]
cap= []
for i in x:
try:
nom =[]
cap= []
l = re.split(pattern, i)
capacidad=float(l[5].replace("%",""))
hdd=l[1]
nom.append(hdd)
cap.append(capacidad)
nom.append("Libre")
cap.append(100-capacidad)
import matplotlib.pyplot as plt
x = cap
labels = nom
fig, ax = plt.subplots()
ax.pie(x, labels = labels, autopct='%.0f%%')
ax.set_title('Capacidad '+str(hdd))
plt.show()
except Exception as e:
print(e)
Resultado
Aquí vemos el resultado de nuestro trabajo:
Fuentes/Referencias
https://blog.facialix.com/crear-graficos-circulares-pastel-con-python-y-matplolib/
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.