我试图从sqlite数据库中的行中获取BLOB类型信息并将它们保存到图片文件中。它们都是存储在blob中的jpg文件。当我尝试循环并从数据库blob创建我的jpeg文件时,我得到奇怪的损坏看起来jpeg文件,其中包含一些原始数据并显示图像,但也有很多失真。我认为它必须对从数据库处理数据的方式做一些事情。无论如何它的第六列包含blob,这是我的代码......
import sqlite3
cnt = 0
con = None
con = sqlite3.connect("C:\\my.db")
cur = con.cursor()
data = cur.execute("SELECT * FROM friends")
for item in data:
cnt = cnt + 1
a = open("C:\\images\\"+str(cnt)+".jpg", 'w')
a.write(item[6])
a.close()
它会为每一行中的每个blob创建一个图像,确切地说是902,并且图像实际上是可见的,即使是正确的图片,只是添加了一些严重的失真/损坏并真正弄乱了图片?如何使用未损坏的Python从我的数据库中的每个blob jpg文件创建jpg图片文件?
谢谢!
答案 0 :(得分:1)
以二进制模式写入文件:open("C:\\images\\"+str(cnt)+".jpg", 'wb')
。