回答

收藏

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

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

我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示:. f5 u) D; C$ ~0 J
import sqlite3
; _2 L4 I" G, i2 A6 W- e2 ]con = sqlite3.connect('../sqlite.db')
6 m& e: J9 t6 k* [with open('../dump.sql', 'w') as f:
  s; F) q  b, d) O7 j  j+ v5 X: s    for line in con.iterdump():
; _- P+ ~( l' s, a        f.write('%s\n' % line)
+ R/ p) o. m# j1 U( R2 e% h现在,我希望能够导入该数据库。我试过了 :3 V6 J8 I( M: U+ R% g
import sqlite3
1 E! O4 V7 E& S) Z& g3 Hcon = sqlite3.connect('../sqlite.db')5 f/ P9 d  W; m' N' B  t& a
f = open('../dump.sql','r')0 Q2 ^0 F8 n& A1 X& ^
str = f.read()3 _$ R( Q5 a% x1 Y6 @
con.execute(str), U9 G/ k3 g. ^4 j  @7 a6 z" }
但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本?0 `8 \& ]3 R! [  g. m0 V+ W" O
                0 ~+ G- S, y7 Q( i0 w. n) A
解决方案:( ?" R8 ]* [; v- D* O* l
                $ a; X9 w- l7 z

4 M! a( j+ F2 s4 Z7 z5 m+ i
# e! |- Z( Z9 d, ^                sql = f.read() # watch out for built-in `str`+ K: B# }0 f8 a) h, q% f$ l
cur.executescript(sql)# D. s- \; M' h/ @% m
文件资料。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则