python 访问sqlite数据库路径问题

在尝试通过Python的sqlite3库连接SQLite数据库时,如果使用相对路径,可能会导致数据库文件未找到或新建空数据库的问题。原因是相对路径是相对于最上层调用模块的路径,而非py文件所在目录。解决方案是在顶层创建main.py,将数据库文件与main.py放于同一目录,通过main.py导入相关模块,确保路径正确。
摘要由CSDN通过智能技术生成

问题

想通过同一个py文件py_MySQL内的方法调用连接 sqlite3数据库,在路径上的设置可以直接设置在当前py_MySQL目录下。但实际上,这样会报错,数据库内没有任何东西,因为sqlite3数据库在连接的时候如果没有这个数据库会自动创建一个,但是里面的表格这个是需要自己创建、插入数据的。

错误信息

没有这个表格

错误原因

相对路径其实指的是相对于最上层调用模块的路径

def dict_query_table_sqlite(sql, args=[], executemany=False):
    # 连接数据库
    conn = sqlite3.connect('screw_database.db')
    cursor = conn.cursor()
    # 如果使用executemany()执行select语句,程序会抛出ProgrammingError: executemany() can only execute DML statements。
    cursor.executemany(sql, args)
    cursor.execute(sql, args)
    conn.commit()
    conn.close()

    return data

 IDE运行脚本的时候首先会将脚本存在的路径作为运行路径, 而第二种在终端运行的时候,会把当前所在的路径作为运行路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值