锁定老帖子 主题:Python保存二进制数据到sqlite3
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-10
最后修改:2009-07-16
我们有这样一个需求:要保存二进制文件到数据库,以后还要从数据库读出来使用。到网上g了一下,发现可以实现,记录以备忘。
# coding: utf8 # Python2.6.2 import sqlite3 db = sqlite3.connect('test.db') cur = db.cursor() cur.execute("CREATE TABLE if not exists t (b BLOB);") with open('0.bin', 'rb') as f: cur.execute("insert into t values(?)", (sqlite3.Binary(f.read()), )) db.commit() cur.execute('select b from t limit 1') b = cur.fetchone()[0] with open('00.bin', 'wb') as f: f.write(b) db.close()
验证方法可以参见上一篇python计算checksum的文章。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-14
你这个代码语法都有问题 还好意思往上贴 晕死
12: Warning: 'with' will become a reserved keyword in Python 2.6 |
|
返回顶楼 | |
发表时间:2009-07-14
最后修改:2009-07-14
vb2005xu 写道
你这个代码语法都有问题 还好意思往上贴 晕死
12: Warning: 'with' will become a reserved keyword in Python 2.6
拜托你看清楚点,我上面的注释里写了是用的Python2.6.2。而且你的警告里也说明了'with'在Python2.6里将是个关键字,如果你用的是Python2.5,那么请在导入语句的开头写上: from __future__ import with_statement |
|
返回顶楼 | |
发表时间:2009-07-15
即使加上了 你这段代码还是运行不了,14行出问题
|
|
返回顶楼 | |
发表时间:2009-07-15
兄台的代码写的不错~但是有个小问题就是~不用没执行一次insert就commit()提交一次, 可以执行完多个insert后一次性提交, 这样数据库的压力也小.
|
|
返回顶楼 | |
发表时间:2009-07-15
vb2005xu 写道 即使加上了 你这段代码还是运行不了,14行出问题
可否贴出是什么错误? |
|
返回顶楼 | |
发表时间:2009-07-16
E:\Python25\turbogears1.0.7\tgprj\hello>python tsqlite.py
File "tsqlite.py", line 14 db.commit() ^ SyntaxError: invalid syntax |
|
返回顶楼 | |
发表时间:2009-07-16
vb2005xu 写道 E:\Python25\turbogears1.0.7\tgprj\hello>python tsqlite.py
File "tsqlite.py", line 14 db.commit() ^ SyntaxError: invalid syntax 是否是缩进错误呢? |
|
返回顶楼 | |
发表时间:2009-07-16
kingheaven 写道 vb2005xu 写道 E:\Python25\turbogears1.0.7\tgprj\hello>python tsqlite.py
File "tsqlite.py", line 14 db.commit() ^ SyntaxError: invalid syntax 是否是缩进错误呢? Sorry, 13行漏掉了一个右括号。 |
|
返回顶楼 | |
发表时间:2009-07-16
peikona 写道 kingheaven 写道 vb2005xu 写道 E:\Python25\turbogears1.0.7\tgprj\hello>python tsqlite.py
File "tsqlite.py", line 14 db.commit() ^ SyntaxError: invalid syntax 是否是缩进错误呢? Sorry, 13行漏掉了一个右括号。 哈哈, 原来如此, 看来你不是用IDE写的程序. |
|
返回顶楼 | |