首页 > 解决方案 > 使用 sqllite3 和 sqllite 脚本处理

问题描述

我有一个带有 SQLite 扩展名的简单 SQLite 文件。

我可以通过一个用文档编写的简单语句连接到“:memory:”

con = sqlite3.connect(":memory:")

但是如果我有一个外部 SQLite 脚本(比如说example.sqlite),并且如果我想连接到这个数据库,我应该怎么做?

我应该通过一些辅助软件执行这个脚本,然后以某种方式建立连接吗?但是在这种情况下怎么办?

我明白,如果我和

con = sqlite3.connect(":memory:")

然后我可以在我的 RAM 中创建数据库并以某种方式对其进行操作。但我不明白如何连接到“现有的”SQLite 数据库?一开始,我必须创建它,但是如何创建呢?我在 python 模块中找不到执行 SQL 脚本的命令。

例如,在 MySQL DB 的情况下,我使用 PyMySql 驱动程序,然后输入凭据,一切顺利

希望我说清楚了..这是我的第一个问题,我已经做好了最坏的打算。

标签: python-3.xsqlite

解决方案


一开始我必须创建它,但是如何创建呢?

您不需要先在 SQLite 中创建数据库文件。如果文件存在,将打开一个连接。如果该文件不存在,它将为您创建。

con = sqlite3.connect('path/to/some/file.db')  # or use :memory:

但是如果我有一个外部 sqlite 脚本(比如说 example.sqlite)并且如果我想连接到这个数据库我应该怎么做?

如果文件只是常规 SQL(创建表等,插入数据),您可以在连接上执行它:

with open('path/to/example.sqlite', encoding='utf8') as file:
    sql = file.read()
    con.executescript(sql)
    con.commit()

这将创建 SQL 描述的数据库,当然它只需要完成一次。

如果你的脚本文件包含“点命令”之类的.import some.txt some_table- 这些只能被 sqlite 命令行客户端理解,你不能通过 Python 执行它们。使用 shell 脚本/批处理文件来执行它们。


推荐阅读