背景准备试一试:f =开放(\u201C\/道路\/ \/文件\u201D,\u201Cr\u201D)打印()最后:如果f:()调用读()将读取所有文件的内容,如果文件有10 g,记忆会破灭,所以,为了安全起见,你可以反复调用read(大小)方法,每次最多读字节大小。此外,调用readline()一次读取一行,叫readline()阅读所有的内容并返回列表逐行。因此,有必要来决定如何调用。如果文件很小,read()是最方便的一次性读;如果你不能确定文件的大小,它是安全调用读(大小)反复;如果它是一个配置文件,它是最方便的调用readline():在():线过程(线)#块读取和处理大型文件很容易想到的是把大文件分成几个小文件处理,并释放内存之后每个小文件处理。
默认的块大小:1你可以设置自己的块大小\u201D\u201C\u201Cfile_object = (filePath),而真正的开放:chunk_data = file_ (chunk_size)如果不是chunk_data: breakyield chunk_dataif __name__ = = \在read_in_chunks \/路径\/文件名\u201C块(filePath):使用open()语句打开和关闭文件,包括抛出内部块例外。文件对象f的线是视为一个迭代器,并将自动采用缓冲IO和内存管理,所以你不必担心大文件。代码如下:#如果文件是直线basedwith开放(\u2026)f: f的线:是没有问题优化张开的大数据的使用数百万行,但参数的差异也会导致不同的效率。
可以看出,二进制阅读仍然是最快的方式。张开(文件名,rb) f: fLine的f:通过测试结果:rb方法是最快的,100 w线是遍历在秒。它基本上可以满足中型和大型文件处理的效率要求。如果你改变从rb(二级读)r(读模式),它将慢5 - 6倍。结论使用python来读取大型文件时,你应该让系统处理,用最简单的方式,将其交给翻译,和照顾你自己的工作。同时,根据不同的需要可以选择不同的阅读参数进一步获得更高的性能。