如何在Python中打开文件时指定缓冲区大小?
如果你查看open函数的函数定义 – open(name[, mode[, buffering]]),你会发现它在Python 2中需要三个参数,第三个是缓冲区大小。可选的缓冲区参数指定文件的所需缓冲区大小,0表示无缓冲,1表示行缓冲,任何其他正值表示使用大约指定大小的缓冲区(以字节为单位)。负数缓冲区表示使用系统默认值,通常是tty设备的行缓冲和其他文件的完全缓冲。如果省略,将使用系统默认值。
例如,如果您想打开一个带有128字节缓冲区的文件,可以像这样打开文件 –
>>> open('my_file', 'r+', 128)
在Python 3中,open函数的函数定义是:open(file,mode =’r’,buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)。缓冲区是一个可选的整数,用于设置缓冲策略。传递0以关闭缓冲(仅允许在二进制模式下),传递1以选择行缓冲(仅在文本模式下可用),传递大于1的整数表示固定大小的缓冲区块的大小(以字节为单位)。当未给出缓冲区参数时,将使用默认缓冲策略,如下所示 –
- 二进制文件缓冲区以固定大小的块缓冲;缓冲区的大小是使用试图确定底层设备的“块大小”的启发式算法选择,并且回退到io.DEFAULT_BUFFER_SIZE。
-
交互式文本文件(isatty()返回True的文件)使用行缓冲。其他文本文件使用上述二进制文件的策略。
Python 3的示例与Python 2相同。例如,如果您想打开一个带有128字节缓冲区的文件,可以像这样打开文件 – example
>>> open('my_file', 'r+', 128)
更多Python相关文章,请阅读:Python 教程