Python 什么是更快/更高效的,读/写文件或io文件类对象?
我正在处理一些大型音频文件(~500MB),其中涉及大量的处理和转换。其中一个步骤包括写入文件,通过网络发送,然后在到达时读取文件,然后根据某种逻辑保存文件。 由于网络部分与我无关,我想知道什么是更快或更有效的,读写实际文件,或io文件样的对象 此外,性能差异有多大(如果有的话)Python 什么是更快/更高效的,读/写文件或io文件类对象?,python,file,io,Python,File,Io,我正在处理一些大型音频文件(~500MB),其中涉及大量的处理和转换。其中一个步骤包括写入文件,通过网络发送,然后在到达时读取文件,然后根据某种逻辑保存文件。 由于网络部分与我无关,我想知道什么是更快或更有效的,读写实际文件,或io文件样的对象 此外,性能差异有多大(如果有的话) 我的直觉会说io对象会更高效,但我不知道这两个过程是如何工作的。io类文件对象的创建是为了避免创建您不想存储的临时文件,只是为了能够传递到其他模块,“愚弄”它们,使它们相信它们是实际的文件句柄(有一些限制,但对于大多数
我的直觉会说io对象会更高效,但我不知道这两个过程是如何工作的。
io
类文件对象的创建是为了避免创建您不想存储的临时文件,只是为了能够传递到其他模块,“愚弄”它们,使它们相信它们是实际的文件句柄(有一些限制,但对于大多数用法,这是可以的)
因此,是的,即使使用SSD驱动器,使用对象也会更快地读取/写入RAM
类io.BytesIO([初始字节])
使用内存中字节缓冲区的流实现
现在,如果数据非常大,您的内存将耗尽,或者将出现交换机制。因此,您可以存储在内存中的数据量是有限制的(我记得旧的音频编辑软件可以执行“直接到磁盘”操作)正是出于这个原因:当时内存有限,无法在内存中存储几分钟的音频数据)
io
创建了类似文件的对象,以避免创建您不想存储的临时文件,只是为了能够传递到其他模块和“傻瓜”让他们相信它们是实际的文件句柄(有一些限制,但对于大多数用法来说,这是可以的)
因此,是的,即使使用SSD驱动器,使用对象也会更快地读取/写入RAM
类io.BytesIO([初始字节])
使用内存中字节缓冲区的流实现
现在,如果数据非常大,您的内存将耗尽,或者将出现交换机制。因此,您可以存储在内存中的数据量是有限制的(我记得旧的音频编辑软件可以执行“直接到磁盘”操作)正是由于这个原因:当时内存有限,无法在内存中存储几分钟的音频数据)