Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是更快/更高效的,读/写文件或io文件类对象?_Python_File_Io - Fatal编程技术网

Python 什么是更快/更高效的,读/写文件或io文件类对象?

Python 什么是更快/更高效的,读/写文件或io文件类对象?,python,file,io,Python,File,Io,我正在处理一些大型音频文件(~500MB),其中涉及大量的处理和转换。其中一个步骤包括写入文件,通过网络发送,然后在到达时读取文件,然后根据某种逻辑保存文件。 由于网络部分与我无关,我想知道什么是更快或更有效的,读写实际文件,或io文件样的对象 此外,性能差异有多大(如果有的话) 我的直觉会说io对象会更高效,但我不知道这两个过程是如何工作的。io类文件对象的创建是为了避免创建您不想存储的临时文件,只是为了能够传递到其他模块,“愚弄”它们,使它们相信它们是实际的文件句柄(有一些限制,但对于大多数

我正在处理一些大型音频文件(~500MB),其中涉及大量的处理和转换。其中一个步骤包括写入文件,通过网络发送,然后在到达时读取文件,然后根据某种逻辑保存文件。 由于网络部分与我无关,我想知道什么是更快或更有效的,读写实际文件,或io文件样的对象

此外,性能差异有多大(如果有的话)


我的直觉会说io对象会更高效,但我不知道这两个过程是如何工作的。

io
类文件对象的创建是为了避免创建您不想存储的临时文件,只是为了能够传递到其他模块,“愚弄”它们,使它们相信它们是实际的文件句柄(有一些限制,但对于大多数用法,这是可以的)

因此,是的,即使使用SSD驱动器,使用对象也会更快地读取/写入RAM

类io.BytesIO([初始字节])

使用内存中字节缓冲区的流实现


现在,如果数据非常大,您的内存将耗尽,或者将出现交换机制。因此,您可以存储在内存中的数据量是有限制的(我记得旧的音频编辑软件可以执行“直接到磁盘”操作)正是出于这个原因:当时内存有限,无法在内存中存储几分钟的音频数据)

io
创建了类似文件的对象,以避免创建您不想存储的临时文件,只是为了能够传递到其他模块和“傻瓜”让他们相信它们是实际的文件句柄(有一些限制,但对于大多数用法来说,这是可以的)

因此,是的,即使使用SSD驱动器,使用对象也会更快地读取/写入RAM

类io.BytesIO([初始字节])

使用内存中字节缓冲区的流实现

现在,如果数据非常大,您的内存将耗尽,或者将出现交换机制。因此,您可以存储在内存中的数据量是有限制的(我记得旧的音频编辑软件可以执行“直接到磁盘”操作)正是由于这个原因:当时内存有限,无法在内存中存储几分钟的音频数据)