Python和sqlite3-导入和导出数据库

2024-04-24 11:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个脚本来导入数据库文件。我编写脚本来导出文件,如下所示:

import sqlite3

con = sqlite3.connect('../sqlite.db')
with open('../dump.sql', 'w') as f:
    for line in con.iterdump():
        f.write('%s\n' % line)

现在我想能够导入那个数据库。我试过:

import sqlite3

con = sqlite3.connect('../sqlite.db')
f = open('../dump.sql','r')
str = f.read()
con.execute(str)

但我不能执行多个语句。有没有办法让它直接运行SQL脚本?


Tags: 文件import脚本数据库dbsqlitesqlconnect
2条回答

尝试使用

con.executescript(str)

文件

Connection.executescript(sql_script)
    This is a nonstandard shortcut that creates an intermediate cursor object
    by calling the cursor method, then calls the cursor’s executescript
    method with the parameters given.

或者先创建光标

import sqlite3

con = sqlite3.connect('../sqlite.db')
f = open('../dump.sql','r')
str = f.read()
cur = con.cursor()
cur.execute(str)
sql = f.read() # watch out for built-in `str`
cur.executescript(sql)

Documentation

相关问题 更多 >