我正在尝试运行程序将价格放入数据库但是当我尝试写入数据库时出现错误。我使用的是Python3.4,我有sqlite版本3.7.14.1
import sqlite3
con = sqlite3.connect('/../../stocks.db')
cur = con.cursor()
cur.execute("insert into apple values (?,?)",(price,time))
con.commit()
#error
cur.execute("insert into apple values (?,?)",(price,time))
sqlite3.DatabaseError: file is encrypted or is not a database
答案 0 :(得分:1)
尝试替换con = sqlite3.connect('/../../stocks.db')
与
con = sqlite3.connect('../../stocks.db')
或使用stocks.db
的正确路径在con = sqlite3.connect('/../../stocks.db')
中,/
作为路径的第一个字符表示根目录,而来自/
的父..
也是根目录/
}
所以/../../stocks.db
是/stocks.db
,这可能不是stocks.db实际上的位置,如果你的意思是相对路径。
当db文件不存在时,如果文件权限允许,sqlite3仍会尝试将其作为新数据库打开。但是,在这种情况下,用户可能无权在/stocks.db