2024-04-25 08:57:54 发布
网友
因此,将BytesIO对象写入文件的快速方法是使用:
with open('myfile.ext', 'wb') as f: f.write(myBytesIOObj.getvalue()) myBytesIOObj.close()
然而,如果我想迭代myBytesIOObj而不是将其写在一个块中,我将如何进行?我在Python2.7.1上。另外,如果BytesIO很大,它会是一种更有效的迭代编写方式吗?
谢谢
shutil有一个实用程序可以有效地写入文件。它分块复制,默认为16K。4K块的任何倍数都应该是一个好的跨平台数字。我选择131072是相当武断的,因为实际上文件在进入磁盘之前是在RAM中写入OS缓存的,块大小也没什么大不了的。
shutil
import shutil myBytesIOObj.seek(0) with open('myfile.ext', 'wb') as f: shutil.copyfileobj(myBytesIOObj, f, length=131072)
顺便说一句,不需要在结尾关闭文件对象。with定义一个作用域,文件对象在该作用域内定义。因此,文件句柄在退出with块时自动关闭。
with
shutil
有一个实用程序可以有效地写入文件。它分块复制,默认为16K。4K块的任何倍数都应该是一个好的跨平台数字。我选择131072是相当武断的,因为实际上文件在进入磁盘之前是在RAM中写入OS缓存的,块大小也没什么大不了的。顺便说一句,不需要在结尾关闭文件对象。
with
定义一个作用域,文件对象在该作用域内定义。因此,文件句柄在退出with
块时自动关闭。相关问题 更多 >
编程相关推荐