正確的我的這件作品的目的是獲取打印的值到數據庫中,但從終端查詢數據庫返回浮點不是打印值有沒有辦法強制這個通過到數據庫。 這裏是我的代碼插入一個轉換百分比到數據庫
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。
你正在存儲的問題是你將'12.34'存儲到'mytable.Cpu'中,當你檢查它時,你會看到'12.3399921'?順便說一句mytable的定義是什麼? – mjv 2013-03-15 13:53:41
是的,當我檢查它返回一個十進制浮點數。mytable只是數據庫中表的名稱,其中cpu是列 – 2013-03-15 14:05:43