replace 替换操作,当数据不存在时插入,存在时更新。
def init():
conn = sqlite3.connect('../data/diskinfo.db')
con = conn.cursor()
print("Opened database successfully")
con.execute("UPDATE sdiskusage set flag =0")
disk = (psutil.disk_partitions())
usableDisk = []
for c in disk:
try:
# print((c[0]),psutil.disk_usage(c[0]))
usage = psutil.disk_usage(c[0])
usableDisk.append(c)
except:
pass
# pprint(usableDisk)
for c in usableDisk:
sdiskusage = psutil.disk_usage(c[0])
con.execute(
r"replace into sdiskusage (device,free,percent,total,used,flag)VALUES ('{}', {}, {}, {}, {},1)".format(
c[0],sdiskusage.free/1024**3,sdiskusage.percent,sdiskusage.total/1024**3,sdiskusage.used/1024**3))
conn.commit()
cursor = con.execute("SELECT device,total,used,free,percent,flag from sdiskusage")
for row in cursor:
print("device = ", row[0], end="\t")
print("total = ", row[1], end="\t")
print("used = ", row[2], end="\t")
print("free = ", row[3], end="\t")
print("percent = ", row[4], end="\t")
print("flag = ", row[5], end="\n")
print("Operation done successfully")
conn.close()