Python conn=sqlite3.connect(';<;绝对路径>;';)0
我的数据库位于此处: D:\sqlite\db 我的Python代码位于此处: D:\app\ZAKPRO\R20191121 代码如下所示:Python conn=sqlite3.connect(';<;绝对路径>;';)0,python,sqlite,path,absolute,Python,Sqlite,Path,Absolute,我的数据库位于此处: D:\sqlite\db 我的Python代码位于此处: D:\app\ZAKPRO\R20191121 代码如下所示: import sqlite3 import os.path conn = sqlite3.connect('D:\sqlite\db\db_name.db') c = conn.cursor() c.execute("INSERT INTO sts_meta (symbol) VALUES( 'tra' ) ") 错误消息是: 操作错误:没有这样的表
import sqlite3
import os.path
conn = sqlite3.connect('D:\sqlite\db\db_name.db')
c = conn.cursor()
c.execute("INSERT INTO sts_meta (symbol) VALUES( 'tra' ) ")
错误消息是:
操作错误:没有这样的表:sts\u meta
filename = "dbname.db"
dir = "D:\sqlite\db"
dbpath = pathlib.Path(dir, filename)
sql = ("SELECT * from sts_meta")
conn = sqlite3.connect(dbpath)
c = conn.cursor()
c.execute(sql)
print(c.fetchall())
conn.commit()
我收到以下信息:
操作错误:没有这样的表:sts\u meta
如何确定我是否连接到数据库
关于pathlib,这是我的数据库路径:
D:\sqlite\db\stocktimeseries.db使用相对路径不是很好。 好的做法是使用python中os包的
path.join
在任何包含反斜杠等字符的字符串中,使用r'your string'
。在字符串之前添加r将表明以下字符串中包含的特殊字符只是一个字符串,它们没有其他用途
我不确定这是否是导致这个问题的原因。但是,如果表存在,并且您对path有问题,那么path.join可以帮助您解决。反斜杠是Python中的转义序列。这可能是您在这里遇到的问题。请尝试将
\
替换为/
,看看是否效果更好。这是一个windows系统。这可能是该建议在其他操作系统上的工作方式有所不同。不幸的是,它不适用于mePython,因为它在所有系统上处理相同的路径。只需将D:\sqlite\db\stocktimeseries.db
更改为D:/sqlite/db/stocktimeseries.db
,看看这是否解决了问题。它并没有解决我的问题。