使用 python 将文件转换为 BytesIO 对象



我有一个文件,想把它转换成BytesIO对象,以便它可以存储在数据库的varbinary列中。

请谁能帮我使用python转换它。

下面是我的代码:

f = open(filepath, "rb")
print(f.read())
myBytesIO = io.BytesIO(f)
myBytesIO.seek(0)
print(type(myBytesIO))

使用open和模式读取二进制打开文件已经为您提供了一个二进制 I/O 对象。

文档:

创建二进制流的最简单方法是在模式字符串中使用带有"b"的 open((:

f = open("myfile.jpg", "rb")

因此,在正常情况下,只需将文件句柄传递到需要提供它的任何位置即可。如果您确实想要/需要获取BytesIO实例,只需在创建BytesIO实例时传递从文件中读取的字节,如下所示:

from io import BytesIO
with open(filepath, "rb") as fh:
buf = BytesIO(fh.read())

这样做的缺点是将整个文件加载到内存中,如果要将实例传递到的代码足够智能,可以在不将其保留在内存中的情况式传输文件,则可以避免这种情况。请注意,该示例使用open作为上下文管理器,即使在出现错误的情况下,该管理器也能可靠地关闭文件。

相关内容

  • 没有找到相关文章

最新更新