从包括sqlite数据库的不同目录运行python文件

如果我首先重定向到该main.py文件所在的文件夹,则此代码运行得很好。因此,在cmd中,我只需键入:pythonmain.py。在此文件夹中,还有我的数据库“ Datalog.db”。

如果我从其他地方运行此python文件,则此代码行会出现问题:cur.execute(sql)。因此,在cmd中,我输入:python C:\ Users \ [...] \ main.py。我收到以下错误:“ sqlite3.OperationalError:没有这样的表:Datalog”。稍后,我想将此Python文件包含在node-red的pythonshell中,在那里我必须定义此main.py的完整路径。

我也尝试用它构建一个exe文件,但是随后发生了同样的错误:“ sqlite3.OperationalError:没有这样的表:Datalog”。

显然与数据库的连接不是问题,首先我的cur.execute命令不起作用。

我发现我必须“将我的SQLite数据库文件包括在include_files语句中”,但是我不知道该怎么做..

有人可以帮忙吗?对于给您带来的任何不便,我深感抱歉。我刚刚开始编程,这是我的第一篇文章。

import sqlite3 as db

db_name = 'Datalog'
output_number = 'Output1'
output = 'hello'
timestamp = '2019-11-11 09:27:02'
db_name = f'{db_name}.db'

con = db.connect(db_name)
with con:
    cur = con.cursor()

sql = f"UPDATE Datalog SET {output_number}='{output}' WHERE timestamp ='{timestamp}'"

cur.execute(sql)
con.commit()
print("### DB updated ###")
ssssf 回答:从包括sqlite数据库的不同目录运行python文件

您可以将db_name更改为sqlite数据库的完整路径,甚至可以更好地动态构建db的路径(以下代码假定db与调用以下代码的文件位于同一文件夹(目录)中):

import os.path

db_name = os.path.dirname(os.path.abspath(__filename__)) + 'Datalog'
,

python在“ sys.path”中查找文件,因此您想在该路径中插入包含文件的目录的名称,以便python可以找到它
这是一个例子:

# REGEXREPLACE(my_cell,regex_to_match_word,text & capture_function)
=REGEXREPLACE(
    A1,"word$","special" & 
        # REGEXEXTRACT("my_cell","capture_regex")
        REGEXEXTRACT(
            A1,"word$"
        )
)

其中0是sys.path中的位置,0表示顶部,1表示距顶部第二秒,依此类推。
显然,您可以用您的目录替换我的目录

本文链接:https://www.f2er.com/3122154.html

大家都在问