使用 python 将文件转换为 BytesIO 对象
Convert file into BytesIO object using python
我有一个文件,想将它转换成 BytesIO
对象,以便它可以存储在数据库的 varbinary 列中。
谁能帮我用python转换一下。
下面是我的代码:
f = open(filepath, "rb")
print(f.read())
myBytesIO = io.BytesIO(f)
myBytesIO.seek(0)
print(type(myBytesIO))
使用 open
和 read-binary 模式打开文件已经为您提供了二进制 I/O 对象。
The easiest way to create a binary stream is with open() with 'b' in the mode string:
f = open("myfile.jpg", "rb")
所以在正常情况下,只要将文件句柄传递到需要提供的地方就可以了。如果你 真的 want/need 得到一个 BytesIO
实例,只需在创建 BytesIO
实例时传递你从文件中读取的字节,就像这样:
with open(filepath, 'rb') as fh:
buf = BytesIO(fh.read())
这有将整个文件加载到内存中的缺点,如果您将实例传递到的代码足够智能,可以流式传输文件而不将其保存在内存中,这可能是可以避免的。请注意,该示例使用 open
作为 context manager,即使在出现错误的情况下也能可靠地关闭文件。
我有一个文件,想将它转换成 BytesIO
对象,以便它可以存储在数据库的 varbinary 列中。
谁能帮我用python转换一下。
下面是我的代码:
f = open(filepath, "rb")
print(f.read())
myBytesIO = io.BytesIO(f)
myBytesIO.seek(0)
print(type(myBytesIO))
使用 open
和 read-binary 模式打开文件已经为您提供了二进制 I/O 对象。
The easiest way to create a binary stream is with open() with 'b' in the mode string:
f = open("myfile.jpg", "rb")
所以在正常情况下,只要将文件句柄传递到需要提供的地方就可以了。如果你 真的 want/need 得到一个 BytesIO
实例,只需在创建 BytesIO
实例时传递你从文件中读取的字节,就像这样:
with open(filepath, 'rb') as fh:
buf = BytesIO(fh.read())
这有将整个文件加载到内存中的缺点,如果您将实例传递到的代码足够智能,可以流式传输文件而不将其保存在内存中,这可能是可以避免的。请注意,该示例使用 open
作为 context manager,即使在出现错误的情况下也能可靠地关闭文件。