2013-05-01 146 views
0

我想从使用Python 2.7的SQLite3.db文件中的表中的一行读取BLOB类型(包含PNG图像),然后将该数据写入新的图像文件。我很难理解如何实现这一点。这是我想完成基本什么是真正的从零开始代码...使用sqlite3在Python中获取blob的最简洁的方法是什么?

c = conn.cursor() 
data = c.execute("SELECT image_data FROM favicon_bitmaps WHERE index='26'") 
x = open('C:\file.png', 'w') 
x.write(data) 
x.close 

的c.execute只是返回某种光标对象的,我不知道如何在我的数据得到。我在其中一个文档页面查看了游标对象方法,并且我的眼睛只是一片空白......我不熟悉在Python中使用SQLite3数据库,任何指针或想法都非常感谢!谢谢一堆!

回答

1

请勿使用cursor.execute()的返回值;通常你忽略它完全(真的会一直是更Python它只是返回None。)

相反,调用光标.fetchone()方法调用.execute(),它返回一个Row对象后:

c = conn.cursor() 
c.execute("SELECT image_data FROM favicon_bitmaps WHERE index='26'") 
data = c.fetchone() 
with open('C:\file.png', 'wb') as x: 
    x.write(data[0]) 
+0

嘿!感谢您的意见。我能够创建我的文件并获取数据:)快速问题,抓取抓取整行还是抓取行的一部分?使用SQLite数据库查看器可视化几乎像电子表格一样的SQLite数据库视图,然后试图在Python中使用Python来浏览它们,这让我的大脑在翻译过程中有点迷失。通过使用您的建议,我能够成功创建我的文件,非常感谢! (这SQLite的东西仍然有点混乱,虽然哈哈) – 0xhughes 2013-05-02 21:11:29

+0

fetch_one提取在SELECT中指定的任何列。 – geoffspear 2013-05-03 03:03:16

相关问题