回答

收藏

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

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

我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示:5 Z* k: y4 G0 K# z. N8 j$ E+ L
import sqlite3% S3 c) ]  q' I/ F; v0 [
con = sqlite3.connect('../sqlite.db')/ i- D6 n# }+ B/ b8 t
with open('../dump.sql', 'w') as f:
* @5 @+ P5 I; L    for line in con.iterdump():
: C1 X; T/ k/ q        f.write('%s\n' % line)
" t* Q- F' }4 Z4 d" M9 z4 W3 P现在,我希望能够导入该数据库。我试过了 :# O. D( B+ J2 ]# K$ T
import sqlite37 m1 K8 ?( r1 P) z5 k4 y, `& H$ q
con = sqlite3.connect('../sqlite.db')
, Q2 ~- F: R9 l# a$ W1 H2 @% If = open('../dump.sql','r'): U9 u8 `: w" p% v
str = f.read()
  m7 i  r( W! W" {/ L# ycon.execute(str)
1 p, p9 T6 b3 m  v( L1 h但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本?0 U9 l* ]- L3 F% M# T1 R6 _
                9 r0 _$ E$ u# e8 j8 C1 X  q. C1 Z
解决方案:
. T4 ~8 X6 y" l5 u0 a' z% h4 N                " c, v) I# L$ A+ E: p6 `6 C

3 q7 L5 R# E3 Y2 H5 M: v6 {$ x: H& |) M( d
                sql = f.read() # watch out for built-in `str`
5 z- I9 W: M2 T; e9 `0 T- hcur.executescript(sql)) j1 V8 l6 v. ~% w- e' d  Y( P
文件资料。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则