この作品の私の目的は、印刷された値をデータベースに取得することですが、ターミナルからのクエリでは、データベースは印刷された値ではなく浮動小数点を返します。これを強制的にデータベースに渡す方法があります。ここに私のコードがあります
def getCpuLoad():
"""
Returns the cpu load as a value from the interval [0.0, 1.0]
"""
dt = list(deltaTime(INTERVAL))
idle_time = float(dt[3])
total_time = sum(dt)
load = 1-(idle_time/total_time)
return load
def diskspace():
stats = os.statvfs('/opt')
freespace = stats.f_bavail * stats.f_frsize
freespace / 1048576
return freespace
while True:
print time.strftime("%A, %B, %d, %Y, %H, %M"),"CPU usage=%.2f%%" % (getCpuLoad()*100)
cursor.execute('''INSERT INTO mytable (Date, Cpu) VALUES (?,?)''',(today, getCpuLoad()))
print time.strftime("%A, %B, %d, %Y, %H, %M"), diskspace()
cursor.execute('''INSERT INTO mytable (Date, free) VALUES (?,?)''',(today,diskspace()))
cursor.commit() ご覧のとおり、印刷時に浮動小数点の丸めを行いますが、上記のように、変換せずに挿入するだけです。私はまだ両方を学んでいるので、誰でも助けてください。python と sqlite3.