Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python conn=sqlite3.connect(';<;绝对路径>;';)0_Python_Sqlite_Path_Absolute - Fatal编程技术网

Python conn=sqlite3.connect(';<;绝对路径>;';)0

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' ) ") 错误消息是: 操作错误:没有这样的表

我的数据库位于此处: 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' ) ")
错误消息是: 操作错误:没有这样的表:sts\u meta

  • 有人能帮我更正代码吗
  • 我在不同的位置分离数据库和代码:这样好吗
  • 我只找到相对路径的例子:在pythonsqlite社区中,绝对路径的访问不是首选的吗?为什么呢
  • 更新 现在我已经重新编码,但仍然面临同样的问题:

    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
    ,看看这是否解决了问题。它并没有解决我的问题。