所以我使用这个脚本来保存我的raspberry pi上的温度和湿度数据,相关部分看起来像这样:
import sqlite3 as db
con = db.connect('hygolog.db')
cur = con.cursor()
#This part is commented because I used it when running the first time
#cur.execute("CREATE TABLE measure(time STR PRIMARY KEY, humidity REAL, tempertaure REAL)")
#con.commit()
while True:
cur.execute(f"""INSERT INTO measure
VALUES(datetime('now','localtime'),{round(humidity,3)},{round(temperature,3)})""")
con.commit()
当从代码编辑器执行文件时,这工作得很好(我检查了一下,之后在DB中找到了数据),但是当我从终端执行文件时,我得到了以下错误:
user@raspberrypi:~ $ python Desktop/hygometer.py
Traceback (most recent call last):
File "/home/user/Desktop/hygometer.py", line 19, in <module>
cur.execute(f"""INSERT INTO measure
sqlite3.OperationalError: no such table: measure
这也是一个奇怪的地方失败,为什么它不应该找到非常现有的表时,通过终端执行?
1条答案
按热度按时间kuuvgm7e1#
请尝试指定hygolog.db的完整路径,例如
C:/Files/hygolog.db
。当您从终端运行此命令时,可能会从不同的文件夹运行,因此它会在该文件夹中创建一个新的空hygolog.db。