如何使用Python在MySQL数据库中插入/检索作为BLOB存储的文件

16 投票
2 回答
27756 浏览
提问于 2025-04-15 13:41

我想写一个Python脚本,把一些信息放进数据库里。我的表格里有一列是BLOB类型,我想把每个条目的文件保存到这里。

我该怎么用Python读取这个文件(二进制文件),然后把它插入到数据库里呢?同样,我又该怎么把它取出来,并把这个文件写回到硬盘上的某个位置呢?

2 个回答

-2

你可以像处理其他类型的列一样,从数据库中插入和读取BLOB(大对象)。从数据库的接口来看,BLOB并没有什么特别之处。

20
thedata = open('thefile', 'rb').read()
sql = "INSERT INTO sometable (theblobcolumn) VALUES (%s)"
cursor.execute(sql, (thedata,))

这段代码当然是按照写的方式工作,前提是你的表格里只有 BLOB 列,并且你想做的是插入数据。不过,你可以很容易地调整这段代码,添加更多的列,或者用更新(UPDATE)代替插入(INSERT),或者根据你的具体需求进行其他修改。

我还假设你的文件是二进制格式,而不是文本格式等等;如果我的假设不对,你也可以轻松地根据需要调整上面的代码。

要获取 BLOB 数据,你需要在 cursor.execute 上执行某种 SELECT 操作,然后从游标中提取数据,这和获取其他类型的数据是一样的。

撰写回答