2013-05-01 145 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

相關問題