回答

收藏

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

技术问答 技术问答 484 人阅读 | 0 人回复 | 2023-09-14

我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示:
5 u. K! m( Y5 {; Timport sqlite3
7 L* h2 ?& w) ]6 X# l9 Ocon = sqlite3.connect('../sqlite.db')
! ~: U: x: u, Z$ n& {8 _- Uwith open('../dump.sql', 'w') as f:
3 Z6 |1 v. `5 j2 P6 \! U    for line in con.iterdump():$ V4 Z' c$ x0 u$ Q/ i
        f.write('%s\n' % line)6 h& s( `7 v% l  a; A9 z+ J( D
现在,我希望能够导入该数据库。我试过了 :& R' E! i$ k1 D
import sqlite36 j$ ]0 X7 w3 q7 v% N. h+ \! I
con = sqlite3.connect('../sqlite.db')" Q/ n$ [; ]( O
f = open('../dump.sql','r')! A* Z; N/ \9 P5 [8 {# J  f
str = f.read()
/ ~- L3 Y- V/ U: ]$ P- D7 Ucon.execute(str)
* q0 `2 p$ C- _. y0 I4 u: n但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本?& D. O  C  }8 l' `* E9 J$ m) {
                % K$ H. |' ^) A8 j  A
解决方案:
- a  z3 \# a6 o$ n$ A( z- W9 ?               
& G: C( X3 V2 y9 i  f2 O4 n9 A: U9 R1 |! ~( q) a

$ d7 s- T2 z$ d: N( R9 J                sql = f.read() # watch out for built-in `str`
. W! G3 E5 q! S- K" y6 B5 S1 Zcur.executescript(sql)
/ A! g& t' ~! m. `& \文件资料。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则