这里以读取txt大文件为例,简单介绍一下Python是如何读取大文件的,系统内存在8G左右,txt文件的大小为5G,实验环境win10 python3.6 pycharm2018,主要内容如下:
1.首先,按照最原始的方法读取txt文件,即用open函数直接打开txt文件,一次将所有数据读入到内存中,这里如果文件大于系统运行内存,会直接报Memery Error错误,测试代码如下,非常简单:
运行这个程序,读取花费时间大概在41s左右,如下:
2.最基本的方法,为了提高读取速度,以二进制方式打开文件,测试代码如下,对上面的代码只需要稍微修改一下就行,open打开时,设置方式为rb:
运行这个程序,截图如下,读取时间大概在7s左右,明显比直接读取快6倍左右:
3.为了更快的提高读取速度,这里我们在read读取文件的时候,可以按块大小读取,每次读取一定大小的块,依次循环,直到整个文件读完,测试代码如下,也非常简单:
运行这个程序,截图如下,读取时间大概在3.5s左右,比上面直接读取快2倍左右:
4.这里还有一种提高读取的方法就是使用with open打开文件,把文件对象视为一个迭代器,系统会自动使用缓冲IO和内存管理,所以读取速度也会有一定提升,测试代码如下:
运行程序,读取时间大概在26s左右,比直接读取快1倍左右,如下:
5.当然,对于其他类型的大文件,像CSV,Excel等,读取时也可以按块读取,速度也会有明显的提升,基本代码如下,每次读取一定块大小的文件,直到整个文件读完:
至此,我们就完成了使用Python读取大文件。总的来说,基本思想就是按块读取,每次只读取一定块大小的数据,这样读取速度会有明显提升,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。